Pular para o conteúdo
Decoding Chat API

Alterações de e-mail e senha

Alterar o endereço de e-mail ou a senha de uma conta requer várias etapas. O Decoding Chat abre um ticket, envia um código por e-mail, e cada etapa posterior envia esse ticket com os códigos e provas coletados até então. Uma conta cujo endereço foi rejeitado pelo provedor de e-mail usa a recuperação de e-mail devolvido (bounced) em seu lugar.

Toda operação precisa de uma sessão de usuário que não seja de bot. As rotas de alteração de e-mail aceitam uma sessão com o estado de conta suspeito. Todas as rotas de alteração de senha rejeitam esse estado com 403 ACCOUNT_SUSPICIOUS_ACTIVITY.

Um identificador de ticket é um UUID versão 4. O Decoding Chat o emite quando o fluxo começa, e cada etapa posterior o envia como uma string simples de 1 a 256 caracteres. Cada ticket pertence a uma conta, e uma etapa enviada por outra conta falha com INVALID_OR_EXPIRED_TICKET. Um ticket concluído rejeita qualquer etapa adicional com TICKET_ALREADY_COMPLETED. Iniciar um fluxo novamente emite um novo ticket e deixa qualquer um pendente ainda utilizável.

Um código de verificação tem oito caracteres do alfabeto latino maiúsculo e os dígitos decimais, escritos como dois grupos de quatro caracteres separados por um hífen. Um código vive por 10 minutos a partir do momento em que é enviado. O Decoding Chat remove os espaços em branco (trim) do valor enviado e a comparação é de outra forma exata, portanto, um valor com qualquer outro caractere avulso falha com INVALID_VERIFICATION_CODE.

O Decoding Chat retorna uma prova, um UUID versão 4, de cada etapa que estabelece um fato sobre o ticket. O fluxo de alteração de e-mail emite original_proof para o endereço original e o exige em Request new email e Verify new email. O fluxo de alteração de senha emite verification_proof para o código enviado por e-mail e o exige para concluir a alteração.

Um token de e-mail é um UUID versão 4 que representa um novo endereço verificado. Ele vive por 30 minutos, pertence à conta para a qual foi emitido e é excluído uma vez consumido. Um token apresentado por outra conta falha com INVALID_EMAIL_TOKEN, e um após o tempo de vida é excluído e falha com EMAIL_TOKEN_EXPIRED.

O Decoding Chat recusa um reenvio por 30 segundos após o envio anterior do mesmo código. A recusa é um HTTP 429 com um Retry-After calculado a partir do momento exato em que o próximo envio se torna disponível. Esse tempo de espera (cooldown) é separado do bucket de rota e dos controles de envio de e-mail.

  • Uma falha de ticket usa o caminho ticket.
  • Uma falha de código usa o caminho code.
  • Uma falha de endereço usa o caminho new_email ou email.
  • Uma falha de prova usa o caminho original_proof ou verification_proof.
  • Uma falha de token de e-mail usa o caminho email_token.
  • Uma falha de senha usa o caminho password ou new_password.

Os códigos em nível de conta ACCESS_DENIED, ACCOUNT_SUSPICIOUS_ACTIVITY, SUDO_MODE_REQUIRED e RATE_LIMITED chegam como o code de nível superior.

Cada operação que envia um e-mail conta em seu próprio bucket de rota e contra um controle de envio de e-mail de 15 minutos para a conta. Esgotar qualquer um produz HTTP 429 mesmo quando o outro tem espaço.

ControleLimiteOperações
Endereço original3 envios a cada 15 minutosStart email change e Resend original email code
Novo endereço5 envios a cada 15 minutosRequest new email, Resend new email code e ambos os envios de recuperação devolvidos
Início da alteração de senha3 envios a cada 15 minutosStart password change
Reenvio de alteração de senha3 envios a cada 15 minutosResend password change code

O ticket de alteração de e-mail é pending-original, pending-new ou completed (pendente original, pendente novo ou concluído). Uma etapa permitida em um estado é rejeitada em todos os outros com o código nomeado nos parágrafos abaixo.

Estado atualOperaçãoPróximo estado
Pending originalResend original email codePending original
Pending originalVerify original emailPending new
Pending newRequest new emailPending new
Pending newResend new email codePending new
Pending newVerify new emailCompleted

Um ticket criado sem verificação de e-mail original começa no estado pending-new e recebe sua original_proof diretamente do Start email change. Solicitar ou verificar um novo endereço enquanto o ticket ainda for pending-original falha com ORIGINAL_EMAIL_MUST_BE_VERIFIED_FIRST.

Verificar o estágio original em um ticket que nunca o exigiu falha com ORIGINAL_VERIFICATION_NOT_REQUIRED. Reenviar o código original falha com ORIGINAL_EMAIL_ALREADY_VERIFIED em um ticket que passou pela verificação do endereço original e em um ticket que nunca exigiu a etapa, portanto, a resposta não distingue os dois. Em um ticket que passou na verificação do endereço original, verificar o endereço original novamente retorna a mesma original_proof.

Reenviar o código de novo endereço antes que um endereço tenha sido solicitado falha com NO_NEW_EMAIL_REQUESTED. Um ticket pending-original retorna o mesmo código.

Request new email e Resend new email code compartilham um tempo de espera de 30 segundos. Solicitar um endereço diferente não pode contorná-lo.

Chegar ao estado completed emite um token de e-mail e deixa o e-mail da conta inalterado. Apply email change escreve o novo endereço.

O estado de um ticket de alteração de e-mail recém-criado.

CampoTipoDescrição
ticketstringO identificador que todas as etapas posteriores deste fluxo enviam
require_original1booleanSe o endereço original precisa de verificação antes que um novo endereço possa ser solicitado
original_email2?stringO endereço na conta ou null quando a conta não possui nenhum
original_proof3?stringA prova para a etapa do endereço original, ou null enquanto essa etapa não for verificada
original_code_expires_at4?timestamp ISO8601O momento em que o código enviado ao endereço original expira, 10 minutos após o envio
resend_available_at4?timestamp ISO8601O momento mais cedo em que o código do endereço original pode ser reenviado, 30 segundos após o último envio

1 Verdadeiro apenas quando a conta possui um endereço de e-mail e esse endereço é verificado

2 Registrado no ticket no momento da criação, portanto, uma alteração posterior no e-mail da conta não o move. Request new email compara com esse valor registrado

3 Definido exatamente quando require_original é falso. Request new email e Verify new email exigem isso

4 Nulo sempre que require_original for falso

{
"ticket": "6f1a4c9e-3d52-4a77-9b0e-2c8f5d41ab30",
"require_original": true,
"original_email": "old@example.com",
"original_proof": null,
"original_code_expires_at": "2026-03-04T18:10:00.000Z",
"resend_available_at": "2026-03-04T18:00:30.000Z"
}

O estado de um ticket com um endereço candidato vinculado a ele e um código enviado a esse endereço.

CampoTipoDescrição
ticket1stringO identificador que todas as etapas posteriores deste fluxo enviam
new_email2stringO endereço agora vinculado ao ticket
new_code_expires_attimestamp ISO8601O momento em que o código enviado ao novo endereço expira, 10 minutos após o envio
resend_available_at3?timestamp ISO8601O momento mais cedo em que o código do novo endereço pode ser reenviado, 30 segundos após o último envio

1 Ecoa o ticket que a solicitação nomeou, exceto em Request replacement email for bounced address, onde identifica o ticket que a operação criou

2 A forma com trim do endereço enviado, que é o que um posterior Verify new email grava

3 Sempre definido

A prova de que um ticket passou da etapa de endereço original.

CampoTipoDescrição
original_proof1stringA prova exigida por Request new email e Verify new email

1 Estável para a vida útil do ticket. Verificar o endereço original novamente retorna o mesmo valor

O token de e-mail que um ticket de alteração de e-mail concluído retorna.

CampoTipoDescrição
email_token1stringO token que o Apply email change consome para escrever o endereço

1 O token vive 30 minutos e representa o endereço exato que o ticket verificou

O estado de um ticket de alteração de senha recém-criado.

CampoTipoDescrição
ticketstringO identificador que todas as etapas posteriores deste fluxo enviam
code_expires_attimestamp ISO8601O momento em que o código enviado por e-mail expira, 10 minutos após o envio
resend_available_at1?timestamp ISO8601O momento mais cedo em que o código pode ser reenviado, 30 segundos após o último envio

1 Sempre definido

A prova de que o código enviado por e-mail foi aceito.

CampoTipoDescrição
verification_proof1stringA prova que Complete password change consome

1 Estável para a vida útil do ticket. Verificar o mesmo código novamente retorna o mesmo valor

A sessão de substituição que Complete password change retorna após a senha ser gravada.

CampoTipoDescrição
token1stringO token de autenticação para a sessão de substituição
auth_session_id_hashstringO hash codificado em base64url da sessão de autenticação de substituição

1 A mesma operação destrói o token com o qual o cliente foi autenticado, portanto, o cliente envia cada solicitação posterior com esse valor

POST/v1/users/@me/email-change/start

Cria um ticket de alteração de e-mail. Retorna um objeto de início da alteração de e-mail em caso de sucesso.

Apenas uma conta que possui um endereço de e-mail ou não está reivindicada (unclaimed) pode iniciar uma alteração de e-mail. Todas as outras contas falham com MUST_HAVE_EMAIL_TO_CHANGE_IT.

A verificação do endereço original aplica-se apenas quando a conta possui um endereço de e-mail verificado. Uma devolução (bounce) limpa o estado verificado. Uma conta cujo endereço não foi verificado novamente desde a devolução obtém um ticket que ignora a etapa original. O Apply email change marca o endereço verificado novamente sem limpar o marcador devolvido. Portanto, uma conta que aplicou uma alteração desde a devolução obtém um ticket que exige a etapa.

Enviar um código de endereço original conta no limite de envio do endereço original.

O corpo pode ser omitido, e qualquer corpo fornecido é um objeto sem campos. O Decoding Chat retira chaves desconhecidas antes de lidar com a solicitação.

StatusCorpoCondição
200objeto de início da alteração de e-mailO ticket foi criado

Quando a verificação de endereço original se aplica, o Decoding Chat cria o ticket no estado pending-original e envia um e-mail de verificação para o endereço atual da conta. Um ticket que ignora a etapa é criado como pending-new com sua original_proof já emitida. Nenhum campo de conta é alterado.

10 requisições por minuto para cada usuário autenticado, no bucket user:email_change:start.

POST/v1/users/@me/email-change/resend-original

Envia um novo código de verificação para o endereço original da conta de um ticket ativo. Retorna 204 com um corpo vazio.

Um ticket que não é mais pending-original falha com ORIGINAL_EMAIL_ALREADY_VERIFIED. Um ticket sem registro de endereço original falha com NO_ORIGINAL_EMAIL_ON_RECORD.

O envio conta no limite de envio de endereço original e o ticket aplica seu próprio tempo de espera de 30 segundos.

CampoTipoDescrição
ticketstringO identificador retornado pelo Start email change (1-256 caracteres)
StatusCorpoCondição
204vazioUm código de endereço original de substituição foi enviado

O Decoding Chat substitui o código do endereço original do ticket, o horário de envio e a expiração do código, o que invalida o código anterior. Um e-mail de verificação vai para o endereço original.

10 requisições por minuto para cada usuário autenticado, no bucket user:email_change:resend_original.

POST/v1/users/@me/email-change/verify-original

Verifica a etapa do endereço original e avança o ticket para pending-new. Retorna um objeto de verificação de e-mail original em caso de sucesso.

Executar a operação em um ticket que já passou pela etapa retorna a mesma prova e não altera nada. Um ticket que nunca exigiu a etapa falha com ORIGINAL_VERIFICATION_NOT_REQUIRED. Um ticket sem código emitido falha com VERIFICATION_CODE_NOT_ISSUED, um código passado do seu tempo de vida de 10 minutos com VERIFICATION_CODE_EXPIRED, e uma incompatibilidade com INVALID_VERIFICATION_CODE.

CampoTipoDescrição
ticketstringO identificador retornado pelo Start email change (1-256 caracteres)
codestringO código enviado para o endereço original (1-256 caracteres)
StatusCorpoCondição
200objeto de verificação de e-mail originalO endereço original foi verificado

20 requisições por minuto para cada usuário autenticado, no bucket user:email_change:verify_original.

POST/v1/users/@me/email-change/request-new

Vincula um novo endereço a um ticket ativo e envia um código de verificação para ele. Retorna um objeto de solicitação de novo e-mail em caso de sucesso.

Um ticket que não passou na verificação do endereço original falha com ORIGINAL_EMAIL_MUST_BE_VERIFIED_FIRST. Um original_proof que não corresponda ao ticket falha com INVALID_PROOF_TOKEN.

O Decoding Chat remove espaços em branco (trim) do endereço e depois o verifica em ordem.

  • Um endereço vazio falha com EMAIL_IS_REQUIRED.
  • Um endereço igual ao original registrado no ticket falha com NEW_EMAIL_MUST_BE_DIFFERENT.
  • Um domínio que não publica troca de e-mails ou registros de endereço falha com EMAIL_DOMAIN_CANNOT_RECEIVE_MAIL.
  • Um endereço que outra conta já possui falha com EMAIL_ALREADY_IN_USE.

A propriedade é verificada novamente quando o token de e-mail resultante é aplicado, portanto, uma solicitação bem-sucedida aqui não reserva o endereço. Chamar a operação novamente com um endereço diferente substitui o endereço pendente no mesmo ticket.

O envio conta no limite de envio de novo endereço, e o ticket aplica seu próprio tempo de espera de 30 segundos.

CampoTipoDescrição
ticketstringO identificador retornado pelo Start email change (1-256 caracteres)
new_email1stringO endereço a vincular ao ticket (1-254 caracteres)
original_proofstringA prova emitida pelo Start email change ou Verify original email (1-256 caracteres)
new_password?2stringA senha para verificar em relação ao corpus de senhas vazadas (8-256 caracteres)

1 Um endereço sintaticamente inválido falha com INVALID_EMAIL_FORMAT, um fora do limite de comprimento com EMAIL_LENGTH_INVALID, e uma parte local fora do conjunto ASCII permitido com INVALID_EMAIL_LOCAL_PART

2 O valor só é verificado no corpus de senhas vazadas, o que reporta uma correspondência como PASSWORD_IS_TOO_COMMON. Nada nesta página grava o valor

StatusCorpoCondição
200objeto de solicitação de novo e-mailO endereço foi vinculado e um código foi enviado

O ticket armazena o endereço solicitado, um código novo, seu horário de envio e sua validade, e permanece como pending-new. Um e-mail de verificação é enviado para o endereço solicitado. O e-mail da conta permanece inalterado neste estágio.

10 requisições por minuto para cada usuário autenticado, no bucket user:email_change:request_new.

POST/v1/users/@me/email-change/resend-new

Envia um novo código de verificação para o endereço já vinculado a um ticket ativo. Retorna 204 com um corpo vazio.

Um ticket sem endereço solicitado falha com NO_NEW_EMAIL_REQUESTED.

O envio conta no limite de envio de novo endereço e o ticket aplica seu próprio tempo de espera de 30 segundos.

CampoTipoDescrição
ticketstringO identificador retornado pelo Start email change (1-256 caracteres)
StatusCorpoCondição
204vazioUm código de novo endereço de substituição foi enviado

O Decoding Chat substitui o código de novo endereço do ticket, o horário de envio e a expiração do código, invalidando o código anterior. Um e-mail de verificação vai para o endereço solicitado.

10 requisições por minuto para cada usuário autenticado, no bucket user:email_change:resend_new.

POST/v1/users/@me/email-change/verify-new

Verifica o endereço solicitado e conclui o ticket. Retorna um objeto de verificação de novo e-mail em caso de sucesso.

Um original_proof que não corresponda ao ticket falha com INVALID_PROOF_TOKEN. Um ticket sem endereço solicitado ou sem código emitido falha com VERIFICATION_CODE_NOT_ISSUED, um código que passou de sua duração de 10 minutos falha com VERIFICATION_CODE_EXPIRED, e uma incompatibilidade com INVALID_VERIFICATION_CODE.

CampoTipoDescrição
ticketstringO identificador retornado pelo Start email change (1-256 caracteres)
codestringO código enviado para o novo endereço (1-256 caracteres)
original_proofstringA prova emitida pelo Start email change ou Verify original email (1-256 caracteres)
StatusCorpoCondição
200objeto de verificação de novo e-mailO novo endereço é verificado

O ticket move-se para o estado completed e um token de e-mail de 30 minutos é emitido para o endereço verificado. O endereço de e-mail da conta permanece inalterado.

20 requisições por minuto para cada usuário autenticado, no bucket user:email_change:verify_new.

POST/v1/users/@me/email-change/applyMFA

Consome um token de e-mail e escreve seu endereço na conta. Retorna o objeto user atualizado em caso de sucesso. Emite um evento de Gateway User Update.

Uma conta reivindicada prova o modo sudo antes de a rota ler o token. Uma conta não reivindicada é isenta e aplica a alteração apenas com sua sessão. A rota aceita estado de conta suspeito.

Um token que pertence a outra conta falha com INVALID_EMAIL_TOKEN, e um passado do seu tempo de vida de 30 minutos falha com EMAIL_TOKEN_EXPIRED. Um token expirado é excluído ao ser rejeitado. O Decoding Chat verifica o endereço em relação à propriedade da conta existente novamente aqui. Um endereço que outra conta pegou desde a verificação falha com EMAIL_ALREADY_IN_USE sem consumir o token.

Modify current user aceita o mesmo token juntamente com uma edição de perfil não relacionada. O token é de uso único, portanto, uma nova tentativa após o sucesso falha com INVALID_EMAIL_TOKEN.

O corpo estende o objeto de verificação sudo com email_token, e os campos sudo que ele mescla são repetidos abaixo. Uma prova sudo existente é enviada no cabeçalho de requisição X-Fluxer-Sudo-Mode-JWT.

CampoTipoDescrição
email_tokenstringO token retornado por Verify new email (1-256 caracteres)
password?1stringA senha da conta (8-256 caracteres)
mfa_method?2stringO método de MFA sudo, seja totp ou webauthn
mfa_code?3stringO código do autenticador sudo ou um código de backup não consumido (1-32 caracteres)
webauthn_response?4objeto de WebAuthn assertionA afirmação produzida para o desafio fornecido
webauthn_challenge?4stringO desafio retornado por create sudo WebAuthn authentication options (1-256 caracteres)

1 Considerado apenas enquanto a conta não tiver autenticador MFA e ignorado assim que o TOTP ou uma credencial WebAuthn existir

2 Exigido quando a conta tiver qualquer autenticador MFA, a menos que a solicitação já apresente uma prova sudo aceita

3 Exigido quando mfa_method é totp. O valor é um código do autenticador atual ou um código de backup não consumido

4 Ambos os campos são exigidos juntos quando mfa_method é webauthn

O corpo não possui campos de perfil nem o campo new_password, e o Decoding Chat retira chaves desconhecidas antes de tratar a solicitação.

Uma conta não reivindicada que também queira uma primeira senha faz uma única chamada a Modify current user com email_token e new_password.

StatusCorpoCondição
200objeto userA alteração de e-mail verificada foi aplicada
403resposta de erroO modo sudo não foi provado e a requisição retorna SUDO_MODE_REQUIRED com o objeto de métodos de modo sudo

O 200 tem X-Fluxer-Sudo-Mode-JWT quando a verificação sudo emitiu uma prova.

O Decoding Chat substitui o e-mail da conta, marca-o como verificado e remove todas as flags de atividade suspeita limpáveis por e-mail, o que pode esvaziar required_actions e restaurar o acesso normal. O novo endereço também é verificado contra a política de contatos da instância, e essa verificação pode adicionar flags de atividade suspeita. O marcador devolvido não é apagado, portanto, uma conta que o possui se recupera por recuperação de e-mail devolvido.

Para uma alteração comum a partir de um endereço existente, o Decoding Chat envia um e-mail de reversão para o endereço original, para que o proprietário possa usar Revert an email change. O Decoding Chat exclui o token de e-mail, registra a alteração de contato no log de alterações de contato da conta e emite User Update. Como nenhum campo de membro público muda, não há nenhum evento Guild Member Update subsequente.

20 requisições por minuto para cada usuário autenticado, no bucket user:email_change:apply.

Uma conta cujo endereço armazenado foi rejeitado pelo provedor de e-mail tem o marcador devolvido, relatado como email_bounced no objeto user. A devolução também limpa o estado de e-mail verificado e adiciona uma ação exigida. As operações abaixo vinculam um endereço de substituição e terminam sem a etapa de apply com portão do sudo.

Cada uma delas requer o marcador devolvido. Uma conta sem ele é rejeitada com 403 ACCESS_DENIED, e uma conta sem nenhum endereço é rejeitada com MUST_HAVE_EMAIL_TO_CHANGE_IT.

O fluxo também requer que a conta não tenha um endereço verificado, que é o estado deixado por uma devolução. O Apply email change marca um endereço como verificado sem limpar o marcador devolvido. Uma conta que pegou o fluxo comum após sua devolução possui ambos os estados, então ela recebe ORIGINAL_EMAIL_MUST_BE_VERIFIED_FIRST aqui e altera seu endereço através do fluxo comum.

Os códigos e o tempo de espera de 30 segundos neste fluxo seguem as regras de Contrato de ticket e código. Os envios neste fluxo contam no limite do controle de novo endereço.

Solicitar e-mail de substituição para endereço devolvido

Seção intitulada “Solicitar e-mail de substituição para endereço devolvido”
POST/v1/users/@me/email-change/bounced/request-new

Inicia o fluxo de recuperação. Retorna um objeto de solicitação de novo e-mail em caso de sucesso.

Esta operação cria um ticket e vincula o endereço de substituição na mesma chamada. A rota aceita o estado suspeito da conta. O Decoding Chat verifica o endereço exatamente como o Request new email faz: o endereço deve ter um domínio que publica registros de troca ou de endereços de e-mail, pertencer a nenhuma outra conta e diferir do endereço devolvido.

O envio conta contra o limite de controle de novo endereço.

CampoTipoDescrição
new_emailstringO endereço para substituir o devolvido (1-254 caracteres)
StatusCorpoCondição
200objeto de solicitação de novo e-mailO endereço de substituição foi vinculado e um código foi enviado
403resposta de erroA conta não está marcada como devolvida e a solicitação retorna ACCESS_DENIED

Um ticket é criado como pending-new com o endereço de substituição vinculado a ele, e um e-mail de verificação vai para esse endereço. Nenhum campo da conta é alterado. Guarde o ticket retornado, porque as etapas restantes não levam nenhum outro identificador.

10 requisições por minuto para cada usuário autenticado, no bucket user:email_change:bounced:request_new.

POST/v1/users/@me/email-change/bounced/resend-new

Envia um novo código de verificação para o endereço de substituição vinculado a um ticket de recuperação ativo. Retorna 204 com um corpo vazio.

Um ticket sem um endereço de substituição falha com NO_NEW_EMAIL_REQUESTED.

O envio conta no controle de novo endereço e o ticket aplica seu próprio tempo de espera de 30 segundos.

CampoTipoDescrição
ticketstringO identificador retornado por Request replacement email for bounced address (1-256 caracteres)
StatusCorpoCondição
204vazioUm código de substituição foi enviado
403resposta de erroA conta não está marcada como devolvida e a solicitação retorna ACCESS_DENIED

O Decoding Chat substitui o código do ticket, horário de envio e expiração do código, invalidando o código anterior. Um e-mail de verificação é enviado para o endereço de substituição.

10 requisições por minuto para cada usuário autenticado, no bucket user:email_change:bounced:resend_new.

Verificar e-mail de substituição para endereço devolvido

Seção intitulada “Verificar e-mail de substituição para endereço devolvido”
POST/v1/users/@me/email-change/bounced/verify-new

Verifica o endereço de substituição e o escreve na conta na mesma chamada. Retorna o objeto user atualizado em caso de sucesso. Emite um evento User Update.

Não se aplica verificação de sudo nem etapa de token de e-mail.

CampoTipoDescrição
ticketstringO identificador retornado por Request replacement email for bounced address (1-256 caracteres)
codestringO código enviado ao endereço de substituição (1-256 caracteres)
StatusCorpoCondição
200objeto userO endereço de substituição foi verificado e escrito
403resposta de erroA conta não está marcada como devolvida e a requisição retorna ACCESS_DENIED

A conta recebe o endereço de substituição verificado, email_bounced torna-se falso e as exigências de e-mail satisfeitas são removidas de required_actions. O ticket é concluído e não pode ser reutilizado.

Nenhum e-mail de reversão é enviado.

20 requisições por minuto para cada usuário autenticado, no bucket user:email_change:bounced:verify_new.

POST/v1/users/@me/password-change/start

Cria um ticket de alteração de senha e envia um código de verificação para o e-mail da conta. Retorna um objeto de início da alteração de senha em caso de sucesso.

Uma conta sem um endereço de e-mail falha com MUST_HAVE_EMAIL_TO_CHANGE_IT.

O envio conta no controle de início da alteração de senha.

O corpo pode ser omitido e qualquer corpo fornecido é um objeto sem campos. O Decoding Chat remove chaves desconhecidas antes de tratar a solicitação.

StatusCorpoCondição
200objeto de início de alteração de senhaO ticket foi criado e um código foi enviado

Um ticket é criado em seu estado pendente e um e-mail de verificação vai para o endereço da conta. Nenhum campo da conta é alterado.

10 requisições por minuto para cada usuário autenticado, no bucket user:password_change:start.

POST/v1/users/@me/password-change/resend

Envia um novo código de verificação para um ticket ativo de alteração de senha. Exige que a conta ainda tenha um endereço de e-mail. Retorna 204 com um corpo vazio.

O envio conta no controle de reenvio da alteração de senha, e o ticket aplica seu próprio tempo de espera de 30 segundos.

CampoTipoDescrição
ticketstringO identificador retornado por Start password change (1-256 caracteres)
StatusCorpoCondição
204vazioUm código de substituição foi enviado

O Decoding Chat substitui o código do ticket, o horário de envio e a expiração do código, invalidando o código anterior. Um e-mail de verificação vai para o endereço da conta.

10 requisições por minuto para cada usuário autenticado, no bucket user:password_change:resend.

POST/v1/users/@me/password-change/verify

Verifica o código enviado por e-mail. Retorna um objeto de verificação de senha em caso de sucesso.

Executar a operação em um ticket já verificado retorna a mesma prova. Um ticket sem código emitido falha com VERIFICATION_CODE_NOT_ISSUED, um código com mais de 10 minutos de vida útil com VERIFICATION_CODE_EXPIRED e uma incompatibilidade com INVALID_VERIFICATION_CODE.

CampoTipoDescrição
ticketstringO identificador retornado por Start password change (1-256 caracteres)
codestringO código enviado para o endereço da conta (1-256 caracteres)
StatusCorpoCondição
200objeto de verificação de senhaO código foi aceito

O ticket vai para seu estado verificado e armazena uma prova de verificação. A senha da conta permanece inalterada.

20 requisições por minuto para cada usuário autenticado, no bucket user:password_change:verify.

POST/v1/users/@me/password-change/complete

Consome um ticket verificado e substitui a senha da conta. Retorna um objeto de conclusão da alteração de senha em caso de sucesso. Emite um evento Auth Session Change com o token de substituição.

Nenhuma verificação de sudo se aplica. Um ticket fora de seu estado verificado falha com INVALID_OR_EXPIRED_TICKET. Uma prova que não corresponda falha com INVALID_PROOF_TOKEN. Uma senha de substituição no corpus público de senhas vazadas é rejeitada com PASSWORD_IS_TOO_COMMON. O ticket é marcado como concluído assim que a senha é gravada, portanto, uma nova tentativa falha com TICKET_ALREADY_COMPLETED.

CampoTipoDescrição
ticketstringO identificador retornado por Start password change (1-256 caracteres)
verification_proofstringA prova emitida por Verify password change code (1-256 caracteres)
new_passwordstringA senha para escrever na conta (8-256 caracteres)
StatusCorpoCondição
200objeto de conclusão de alteração de senhaA senha foi substituída

A senha é alterada e o ticket é concluído. Todos os tokens de redefinição de senha e sessões de autenticação existentes são revogados. O autor da chamada recebe Auth Session Change com o token de substituição antes do término de sua sessão. O token retornado é a única sessão da conta. Tokens de acesso OAuth2 e tokens de atualização (refresh tokens) permanecem válidos.

10 requisições por minuto para cada usuário autenticado, no bucket user:password_change:complete.