> ## Documentation Index
> Fetch the complete documentation index at: https://docs.zapclass.com.br/llms.txt
> Use this file to discover all available pages before exploring further.

# Resetar Link de Convite

> Revogar link de convite atual e gerar novo código

Gera um novo código de convite para o grupo, revogando automaticamente o link anterior e impedindo novos acessos através dele.

## Segurança do Link

> **Revogação de Acesso**
>
> Como funciona a invalidação do link anterior.
>
> **Processo de revogação:**
>
> * Link de convite antigo é imediatamente invalidado
> * Novo código único é gerado automaticamente
> * Links compartilhados anteriormente param de funcionar
> * Pessoas que tentarem usar o link antigo recebem erro
> * Membros atuais do grupo não são afetados
>
> Essencial para controlar acesso ao grupo.

> **Geração do Novo Link**
>
> Criação automática de novo código de convite.
>
> **Características do novo link:**
>
> * Código completamente diferente do anterior
> * URL única no formato `https://chat.whatsapp.com/[código]`
> * Válido imediatamente após a geração
> * Pode ser compartilhado com segurança
> * Permanece ativo até próximo reset
>
> O novo link é retornado na resposta da API.

> **Permissões Necessárias**
>
> Requisitos para resetar o código de convite.
>
> **Você precisa ser:**
>
> * Membro ativo do grupo
> * Administrador do grupo
> * Conectado a uma instância válida
>
> **Sem permissão:**
>
> * Membros comuns não podem resetar o link
> * Retorna erro 403 (Forbidden)
> * É necessário solicitar a um administrador
>
> Apenas admins protegem a segurança do grupo.

> **Casos de Uso**
>
> Situações para resetar o código de convite.
>
> **Quando resetar:**
>
> * Link foi compartilhado publicamente por engano
> * Suspeita de entrada indevida de pessoas
> * Mudança de política de entrada no grupo
> * Link vazou em redes sociais ou fóruns
> * Implementação de rotação periódica de segurança
> * Após remoção de membros problemáticos
> * Controle de acesso em eventos temporários
>
> Prática recomendada para grupos privados.

### Authorization

**api\_key** `string` *required*

Chave de autenticação da sua conexão, utilizada no header Authorization como
**Bearer** Token. \\

Você encontra sua API Key no botão **API** da sua conexão no painel ZapClass. \\

A chave sempre começa com o prefixo `zc_`. \\

Exemplo: `zc_6FrX2qjM4bHT9pR6cC0sD8wLkG3nE2tZfV5uN1aP`

### Body Parameters

**groupjid** `string` *required*

Identificador único do grupo (JID). \\

Formato: `número@g.us` \\

Exemplo: `120363308883996631@g.us`

> [!WARNING]
>
> **Atenção de Segurança:** Ao resetar o código, todos os links compartilhados
> anteriormente se tornam inválidos. Certifique-se de comunicar o novo link
> apenas para pessoas autorizadas.

```bash cURL - Resetar código theme={null}
curl -X POST https://zapclass.com.br/api/groups/resetInviteCode \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer zc_6FrX2qjM4bHT9pR6cC0sD8wLkG3nE2tZfV5uN1aP" \
  -d '{
    "groupjid": "120363308883996631@g.us"
  }'
```

```bash cURL - Resetar e capturar novo link theme={null}
RESPONSE=$(curl -s -X POST https://zapclass.com.br/api/groups/resetInviteCode \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer zc_6FrX2qjM4bHT9pR6cC0sD8wLkG3nE2tZfV5uN1aP" \
  -d '{
    "groupjid": "120363308883996631@g.us"
  }')

NEW_LINK=$(echo $RESPONSE | jq -r '.inviteLink')
echo "Novo link de convite: $NEW_LINK"
```

```javascript JavaScript - Resetar código theme={null}
const response = await fetch(
  "https://zapclass.com.br/api/groups/resetInviteCode",
  {
    method: "POST",
    headers: {
      "Content-Type": "application/json",
      Authorization: "Bearer zc_6FrX2qjM4bHT9pR6cC0sD8wLkG3nE2tZfV5uN1aP",
    },
    body: JSON.stringify({
      groupjid: "120363308883996631@g.us",
    }),
  }
);

const data = await response.json();
if (data.success) {
  console.log("Código resetado com sucesso!");
  console.log("Novo link:", data.inviteLink);
  console.log("Novo código:", data.inviteCode);
}
```

```javascript JavaScript - Resetar com confirmação theme={null}
async function resetInviteCodeWithConfirmation(groupJid) {
  // Busca informações do grupo primeiro
  const infoResponse = await fetch("https://zapclass.com.br/api/groups/info", {
    method: "POST",
    headers: {
      "Content-Type": "application/json",
      Authorization: "Bearer zc_6FrX2qjM4bHT9pR6cC0sD8wLkG3nE2tZfV5uN1aP",
    },
    body: JSON.stringify({
      groupjid: groupJid,
      getInviteLink: true,
    }),
  });

  const groupInfo = await infoResponse.json();

  if (!groupInfo.success) {
    throw new Error(groupInfo.message);
  }

  console.log(`Grupo: ${groupInfo.group.name}`);
  console.log(`Link atual: ${groupInfo.group.inviteLink}`);
  console.log("\n⚠️  ATENÇÃO: O link atual será invalidado!");

  const confirm = true; // Em ambiente real, pedir confirmação do usuário
  if (!confirm) {
    console.log("Operação cancelada");
    return { cancelled: true };
  }

  // Reseta o código
  const resetResponse = await fetch(
    "https://zapclass.com.br/api/groups/resetInviteCode",
    {
      method: "POST",
      headers: {
        "Content-Type": "application/json",
        Authorization: "Bearer zc_6FrX2qjM4bHT9pR6cC0sD8wLkG3nE2tZfV5uN1aP",
      },
      body: JSON.stringify({ groupjid: groupJid }),
    }
  );

  const result = await resetResponse.json();

  if (result.success) {
    console.log("\n✓ Código resetado com sucesso!");
    console.log(`Novo link: ${result.inviteLink}`);
    console.log("\n⚠️  Compartilhe o novo link apenas com pessoas autorizadas");
  }

  return result;
}

// Uso
try {
  await resetInviteCodeWithConfirmation("120363308883996631@g.us");
} catch (error) {
  console.error("Erro:", error.message);
}
```

```javascript JavaScript - Reset automático periódico theme={null}
async function schedulePeriodicReset(groupJid, intervalDays) {
  console.log(`Iniciando rotação automática a cada ${intervalDays} dias`);

  const resetLink = async () => {
    try {
      const response = await fetch(
        "https://zapclass.com.br/api/groups/resetInviteCode",
        {
          method: "POST",
          headers: {
            "Content-Type": "application/json",
            Authorization: "Bearer zc_6FrX2qjM4bHT9pR6cC0sD8wLkG3nE2tZfV5uN1aP",
          },
          body: JSON.stringify({ groupjid: groupJid }),
        }
      );

      const data = await response.json();

      if (data.success) {
        const timestamp = new Date().toLocaleString("pt-BR");
        console.log(`[${timestamp}] ✓ Link resetado: ${data.inviteLink}`);

        // Aqui você poderia enviar notificação, salvar em banco, etc.
        return data.inviteLink;
      } else {
        console.error(
          `[${new Date().toLocaleString("pt-BR")}] ✗ Erro: ${data.message}`
        );
      }
    } catch (error) {
      console.error(
        `[${new Date().toLocaleString("pt-BR")}] ✗ Erro:`,
        error.message
      );
    }
  };

  // Reset inicial
  await resetLink();

  // Agenda resets periódicos
  const intervalMs = intervalDays * 24 * 60 * 60 * 1000;
  const intervalId = setInterval(resetLink, intervalMs);

  return {
    stop: () => clearInterval(intervalId),
  };
}

// Uso - resetar link a cada 7 dias
const scheduler = await schedulePeriodicReset("120363308883996631@g.us", 7);

// Para parar: scheduler.stop();
```

```javascript JavaScript - Reset de múltiplos grupos theme={null}
async function resetMultipleGroupLinks(groupJids) {
  const results = [];

  for (const groupJid of groupJids) {
    try {
      const response = await fetch(
        "https://zapclass.com.br/api/groups/resetInviteCode",
        {
          method: "POST",
          headers: {
            "Content-Type": "application/json",
            Authorization: "Bearer zc_6FrX2qjM4bHT9pR6cC0sD8wLkG3nE2tZfV5uN1aP",
          },
          body: JSON.stringify({ groupjid: groupJid }),
        }
      );

      const data = await response.json();

      results.push({
        groupJid,
        success: data.success,
        newLink: data.inviteLink || null,
        error: data.message || null,
      });

      // Aguarda 2 segundos entre cada operação
      await new Promise((resolve) => setTimeout(resolve, 2000));
    } catch (error) {
      results.push({
        groupJid,
        success: false,
        newLink: null,
        error: error.message,
      });
    }
  }

  return results;
}

// Uso
const groups = [
  "120363308883996631@g.us",
  "120363308883996632@g.us",
  "120363308883996633@g.us",
];

const results = await resetMultipleGroupLinks(groups);

console.log("=== RESULTADOS DO RESET ===");
results.forEach((result) => {
  if (result.success) {
    console.log(`\n✓ ${result.groupJid}`);
    console.log(`  Novo link: ${result.newLink}`);
  } else {
    console.log(`\n✗ ${result.groupJid}`);
    console.log(`  Erro: ${result.error}`);
  }
});
```

```javascript JavaScript - Reset com notificação theme={null}
async function resetAndNotify(groupJid, adminNumbers) {
  // Reseta o código
  const response = await fetch(
    "https://zapclass.com.br/api/groups/resetInviteCode",
    {
      method: "POST",
      headers: {
        "Content-Type": "application/json",
        Authorization: "Bearer zc_6FrX2qjM4bHT9pR6cC0sD8wLkG3nE2tZfV5uN1aP",
      },
      body: JSON.stringify({ groupjid: groupJid }),
    }
  );

  const data = await response.json();

  if (!data.success) {
    throw new Error(data.message);
  }

  console.log("✓ Link resetado com sucesso");

  // Notifica administradores sobre o novo link
  const message =
    `🔐 *Link de Convite Atualizado*\n\n` +
    `O link de convite do grupo foi resetado por segurança.\n\n` +
    `*Novo link:*\n${data.inviteLink}\n\n` +
    `⚠️ O link anterior não funciona mais.`;

  for (const adminNumber of adminNumbers) {
    try {
      await fetch("https://zapclass.com.br/api/send/text", {
        method: "POST",
        headers: {
          "Content-Type": "application/json",
          Authorization: "Bearer zc_6FrX2qjM4bHT9pR6cC0sD8wLkG3nE2tZfV5uN1aP",
        },
        body: JSON.stringify({
          number: adminNumber,
          message: message,
        }),
      });

      console.log(`  ✓ Notificação enviada para ${adminNumber}`);

      // Aguarda 1 segundo entre envios
      await new Promise((resolve) => setTimeout(resolve, 1000));
    } catch (error) {
      console.error(`  ✗ Falha ao notificar ${adminNumber}:`, error.message);
    }
  }

  return data;
}

// Uso
const admins = ["5511999999999", "5511888888888"];
await resetAndNotify("120363308883996631@g.us", admins);
```

```php PHP - Resetar código theme={null}
<?php
$ch = curl_init('https://zapclass.com.br/api/groups/resetInviteCode');

$payload = [
    "groupjid" => "120363308883996631@g.us"
];

curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($payload));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Content-Type: application/json',
    'Authorization: Bearer zc_6FrX2qjM4bHT9pR6cC0sD8wLkG3nE2tZfV5uN1aP'
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$response = curl_exec($ch);
$data = json_decode($response, true);

if ($data['success']) {
    echo "Código resetado com sucesso!\n";
    echo "Novo link: {$data['inviteLink']}\n";
    echo "Novo código: {$data['inviteCode']}\n";
} else {
    echo "Erro: " . $data['message'];
}

curl_close($ch);
?>
```

```php PHP - Resetar com confirmação theme={null}
<?php
function resetInviteCodeWithConfirmation($groupJid) {
    // Busca informações atuais
    $ch = curl_init('https://zapclass.com.br/api/groups/info');

    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode([
        'groupjid' => $groupJid,
        'getInviteLink' => true
    ]));
    curl_setopt($ch, CURLOPT_HTTPHEADER, [
        'Content-Type: application/json',
        'Authorization: Bearer zc_6FrX2qjM4bHT9pR6cC0sD8wLkG3nE2tZfV5uN1aP'
    ]);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

    $response = curl_exec($ch);
    $groupInfo = json_decode($response, true);
    curl_close($ch);

    if (!$groupInfo['success']) {
        throw new Exception($groupInfo['message']);
    }

    echo "Grupo: {$groupInfo['group']['name']}\n";
    echo "Link atual: {$groupInfo['group']['inviteLink']}\n";
    echo "\n⚠️  ATENÇÃO: O link atual será invalidado!\n\n";

    // Reseta o código
    $ch = curl_init('https://zapclass.com.br/api/groups/resetInviteCode');

    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode([
        'groupjid' => $groupJid
    ]));
    curl_setopt($ch, CURLOPT_HTTPHEADER, [
        'Content-Type: application/json',
        'Authorization: Bearer zc_6FrX2qjM4bHT9pR6cC0sD8wLkG3nE2tZfV5uN1aP'
    ]);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

    $response = curl_exec($ch);
    $result = json_decode($response, true);
    curl_close($ch);

    if ($result['success']) {
        echo "✓ Código resetado com sucesso!\n";
        echo "Novo link: {$result['inviteLink']}\n";
        echo "\n⚠️  Compartilhe o novo link apenas com pessoas autorizadas\n";
    } else {
        echo "✗ Erro ao resetar: {$result['message']}\n";
    }

    return $result;
}

// Uso
try {
    resetInviteCodeWithConfirmation("120363308883996631@g.us");
} catch (Exception $e) {
    echo "Erro: " . $e->getMessage();
}
?>
```

```php PHP - Resetar múltiplos grupos theme={null}
<?php
function resetMultipleGroupLinks($groupJids) {
    $results = [];

    foreach ($groupJids as $groupJid) {
        $ch = curl_init('https://zapclass.com.br/api/groups/resetInviteCode');

        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode([
            'groupjid' => $groupJid
        ]));
        curl_setopt($ch, CURLOPT_HTTPHEADER, [
            'Content-Type: application/json',
            'Authorization: Bearer zc_6FrX2qjM4bHT9pR6cC0sD8wLkG3nE2tZfV5uN1aP'
        ]);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

        $response = curl_exec($ch);
        $data = json_decode($response, true);
        curl_close($ch);

        $results[] = [
            'groupJid' => $groupJid,
            'success' => $data['success'],
            'newLink' => $data['inviteLink'] ?? null,
            'error' => $data['message'] ?? null
        ];

        // Aguarda 2 segundos entre operações
        sleep(2);
    }

    return $results;
}

// Uso
$groups = [
    "120363308883996631@g.us",
    "120363308883996632@g.us",
    "120363308883996633@g.us"
];

$results = resetMultipleGroupLinks($groups);

echo "=== RESULTADOS DO RESET ===\n\n";
foreach ($results as $result) {
    if ($result['success']) {
        echo "✓ {$result['groupJid']}\n";
        echo "  Novo link: {$result['newLink']}\n\n";
    } else {
        echo "✗ {$result['groupJid']}\n";
        echo "  Erro: {$result['error']}\n\n";
    }
}
?>
```

```php PHP - Classe gerenciadora completa theme={null}
<?php
class GroupInviteManager {
    private $token;
    private $baseUrl = 'https://zapclass.com.br/api';

    public function __construct($token) {
        $this->token = $token;
    }

    private function makeRequest($endpoint, $payload) {
        $ch = curl_init($this->baseUrl . $endpoint);

        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($payload));
        curl_setopt($ch, CURLOPT_HTTPHEADER, [
            'Content-Type: application/json',
            "Authorization: Bearer {$this->token}"
        ]);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

        $response = curl_exec($ch);
        curl_close($ch);

        return json_decode($response, true);
    }

    public function getCurrentLink($groupJid) {
        $data = $this->makeRequest('/groups/info', [
            'groupjid' => $groupJid,
            'getInviteLink' => true
        ]);

        if (!$data['success']) {
            throw new Exception($data['message']);
        }

        return $data['group']['inviteLink'] ?? null;
    }

    public function resetInviteCode($groupJid, $showConfirmation = true) {
        if ($showConfirmation) {
            $currentLink = $this->getCurrentLink($groupJid);
            echo "⚠️  Link atual será invalidado: {$currentLink}\n";
        }

        $data = $this->makeRequest('/groups/resetInviteCode', [
            'groupjid' => $groupJid
        ]);

        if (!$data['success']) {
            throw new Exception($data['message']);
        }

        return [
            'newLink' => $data['inviteLink'],
            'newCode' => $data['inviteCode']
        ];
    }

    public function scheduleReset($groupJid, $daysInterval) {
        $lastReset = time();
        $intervalSeconds = $daysInterval * 24 * 60 * 60;

        echo "Agendamento criado: reset a cada {$daysInterval} dias\n";
        echo "Próximo reset: " . date('d/m/Y H:i', $lastReset + $intervalSeconds) . "\n";

        // Em produção, usar cron job ou task scheduler
        return [
            'groupJid' => $groupJid,
            'interval' => $daysInterval,
            'nextReset' => $lastReset + $intervalSeconds
        ];
    }

    public function resetMultiple($groupJids, $delay = 2) {
        $results = [];

        foreach ($groupJids as $groupJid) {
            try {
                $result = $this->resetInviteCode($groupJid, false);
                $results[$groupJid] = [
                    'success' => true,
                    'newLink' => $result['newLink']
                ];
            } catch (Exception $e) {
                $results[$groupJid] = [
                    'success' => false,
                    'error' => $e->getMessage()
                ];
            }

            if ($delay > 0) {
                sleep($delay);
            }
        }

        return $results;
    }
}

// Uso
$manager = new GroupInviteManager('zt_BppKZWtzvj1X2SbJAuOSkA0Z63uDBQ0wkb28NJaloKeOUnHk');

try {
    // Resetar um grupo
    $result = $manager->resetInviteCode("120363308883996631@g.us");
    echo "Novo link: {$result['newLink']}\n\n";

    // Resetar múltiplos grupos
    $groups = [
        "120363308883996631@g.us",
        "120363308883996632@g.us"
    ];

    $results = $manager->resetMultiple($groups);

    echo "=== RESULTADOS ===\n";
    foreach ($results as $groupJid => $result) {
        if ($result['success']) {
            echo "✓ {$groupJid}\n  {$result['newLink']}\n\n";
        } else {
            echo "✗ {$groupJid}\n  {$result['error']}\n\n";
        }
    }

    // Agendar reset periódico
    $schedule = $manager->scheduleReset("120363308883996631@g.us", 7);
    print_r($schedule);
} catch (Exception $e) {
    echo "Erro: " . $e->getMessage();
}
?>
```

```json 200 - Código resetado com sucesso theme={null}
{
  "success": true,
  "message": "Invite code reset successfully",
  "inviteLink": "https://chat.whatsapp.com/XyZ9AbCdEfGhIjKlMnOp",
  "inviteCode": "XyZ9AbCdEfGhIjKlMnOp",
  "groupJid": "120363308883996631@g.us"
}
```

```json 400 - JID inválido theme={null}
{
  "success": false,
  "message": "Group JID inválido ou mal formatado"
}
```

```json 403 - Sem permissão de admin theme={null}
{
  "success": false,
  "message": "Você precisa ser administrador do grupo para resetar o código de convite"
}
```

```json 404 - Grupo não encontrado theme={null}
{
  "success": false,
  "message": "Grupo não encontrado ou você não é membro"
}
```

```json 403 - Não é membro theme={null}
{
  "success": false,
  "message": "Você não é membro deste grupo"
}
```

```json 500 - Erro no servidor theme={null}
{
  "success": false,
  "message": "Erro ao resetar código de convite. Tente novamente"
}
```

```json 500 - Falha na conexão theme={null}
{
  "success": false,
  "message": "Falha na conexão com o WhatsApp. Verifique sua instância"
}
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.