# Dinheiro e confirmação

> O que pede a confirmação em duas etapas no MCP (dinheiro e exclusões) e o que roda na primeira chamada. O resumo, o código de confirmação de 10 minutos e uso único preso aos mesmos valores, o ensaio da emissão de certificados, a permissão do próprio Claude e uma conversa de exemplo.

O assistente faz o que você pede na hora, como se você tivesse clicado no painel. A exceção é o que **mexe em dinheiro** e o que **apaga**: aí a Memberfy não faz nada na primeira chamada. Ela devolve um resumo com os valores reais, e só age depois do seu sim explícito, dado na própria conversa.

## O que pede confirmação

| O quê | Ferramentas | O que o resumo mostra |
|---|---|---|
| Cupons | `create_coupon`, `update_coupon`, `update_coupon_status`, `delete_coupon` | O código, o desconto, a duração, a validade, os produtos; o que muda |
| Preço | `update_price` | O preço atual e o novo |
| Saques | `request_payout`, `cancel_payout` | O valor, a taxa de saque e o saldo |
| Assinaturas | `cancel_subscription`, `create_manual_subscription`, `update_subscription` | A pessoa, o plano e o que muda (cortesia, desconto, extensão, adicional) |
| Última chance (downsell) | `create_downsell_offer`, `update_downsell_offer`, `delete_downsell_offer` | O adicional, o desconto e por quanto tempo vale |
| A própria assinatura | `manage_my_subscription`, `change_my_plan`, `cancel_scheduled_plan_change` | O que vai acontecer com a sua assinatura e com o que você paga; na troca de plano, quanto é cobrado agora no cartão salvo, a próxima cobrança, as extensões, o contrato e o cupom |
| Exclusões | toda ferramenta que começa com `delete_`, `remove_`, `revoke_`, `withdraw_` ou `cancel_` | O que vai ser excluído, removido, revogado ou retirado |

As exclusões incluem `delete_post`, `delete_comment`, `delete_section`, `delete_space`, `delete_event`, `delete_course`, `delete_course_module`, `delete_lesson`, `delete_gallery_image`, `delete_group`, `delete_tag`, `delete_product`, `delete_plan`, `delete_certificate`, `delete_call_for_papers`, `delete_call_track` e `delete_call_event_date`, além de `remove_member`, `remove_call_owner`, `remove_track_reviewer`, `revoke_certificate` e `withdraw_proposal`. A lista de cada assunto, com o selo <span class="tool-kind tool-kind-confirm">Pede confirmação</span>, está em [Ferramentas](/mcp/ferramentas#todas-as-ferramentas).

## O que roda na primeira chamada

Todo o resto, com o selo <span class="tool-kind tool-kind-write">Altera</span>: criar e editar posts, eventos, cursos, planos e produtos em rascunho, publicar, **convidar** pessoas, **trocar o papel** de alguém, mudar as **configurações da comunidade**, mudar **quem vê um espaço**, **emitir, reenviar e refazer certificados**, decidir e negociar propostas da chamada de trabalhos, convidar avaliadores e palestrantes e mudar um plano (`update_plan`).

Essas ações a Memberfy não segura, porque dá para conferir e corrigir pelo painel ou pedindo de novo. O que protege você nelas é o pedido de permissão do próprio assistente (veja [A permissão do assistente](#a-permissao-do-assistente)) e as instruções da Memberfy, que mandam o assistente mostrar antes quem vai receber um e-mail.

### Emitir certificados: o ensaio primeiro

`issue_certificate` manda um e-mail para cada pessoa. Por isso ele tem o modo **ensaio** (`dry_run: true`): não emite nada e devolve quantas pessoas recebem, quem fica de fora e por quê (por exemplo, quem já tem um certificado vigente daquele modelo). O assistente roda o ensaio, mostra o resultado e só depois emite, chamando de novo sem o ensaio. Ver [`issue_certificate`](/mcp/ferramentas-certificados#issue-certificate).

> [!TIP]
> Para convites, peça do mesmo jeito: *"me mostre a lista antes de convidar"*. O assistente monta a lista na conversa e só chama `invite_members` depois do seu ok.

## Como funciona a confirmação

<div class="flow">
<div class="flow-row"><span class="flow-label">1ª chamada</span><span class="flow-node">O assistente pede a ação</span><span class="flow-arrow">→</span><span class="flow-node">A Memberfy não faz nada e devolve o resumo e um código</span></div>
<div class="flow-row"><span class="flow-label">Você</span><span class="flow-node">Lê o resumo</span><span class="flow-arrow">→</span><span class="flow-node">Diz sim, ou pede para mudar</span></div>
<div class="flow-row"><span class="flow-label">2ª chamada</span><span class="flow-node">O assistente repete com o código</span><span class="flow-arrow">→</span><span class="flow-node">A Memberfy confere e executa</span></div>
</div>

1. **A primeira chamada não age.** A Memberfy monta um **resumo** com os valores reais, lendo o que precisa (o preço atual do produto, o saldo, a assinatura), e devolve junto um **código de confirmação**, que começa com `mfy_cf_`. A resposta diz ao assistente: *"Nada foi feito ainda. Mostre o resumo à pessoa e peça um sim explícito."*
2. **O assistente mostra o resumo** e pergunta se pode seguir.
3. **Você responde.** "Sim" segue. "Não", ou um pedido de mudança ("faça 25% em vez de 30%"), recomeça.
4. **A segunda chamada leva o código**, com exatamente os mesmos valores. A Memberfy confere e só então executa.

### As regras do código

| Regra | Por quê |
|---|---|
| Vale **10 minutos** | Um sim de ontem não serve para hoje |
| Serve **uma vez** | Uma repetição, ou duas chamadas ao mesmo tempo, não executam a ação duas vezes |
| Fica preso aos **mesmos valores** | Se qualquer valor mudar entre o resumo e a execução (outro desconto, outro valor de saque), o código é recusado. Você confirmou um resumo, e é aquele resumo que acontece |
| Fica preso à **conexão** e à **ferramenta** | O código de um assistente não serve em outro, e o de um cupom não serve para um saque |

Se qualquer regra falhar, a resposta é: *"Confirmação inválida, vencida, já usada ou com argumentos diferentes. Chame … sem confirmation_token para gerar um resumo novo."* Nada acontece, e o assistente começa de novo, com um resumo novo.

## Uma conversa de exemplo

> **Você:** Crie um cupom de 30% para a Black Friday, só na primeira cobrança, para o plano Growth, até 100 usos, válido até 30/11.
>
> **Assistente:** *(chama `list_products` para achar as opções do Growth, e depois `create_coupon` sem confirmação)*
> Antes de criar, confira:
> - **Código:** BLACK30
> - **Desconto:** 30%, só na primeira cobrança
> - **Usos:** até 100
> - **Validade:** de agora até 30/11/2026
> - **Produtos:** Growth · Mensal e Growth · Anual
>
> Posso criar?
>
> **Você:** Pode.
>
> **Assistente:** *(chama `create_coupon` de novo, com os mesmos valores e o código)*
> Pronto: o cupom **BLACK30** está ativo. Quem assinar o Growth até 30/11 tem 30% na primeira cobrança.

Se você tivesse respondido "faça 25%", o assistente chamaria `create_coupon` de novo **sem** código, com 25%, e mostraria um resumo novo. O código do resumo de 30% não serve mais.

## A permissão do assistente

Além da confirmação da Memberfy, o próprio assistente pede a sua permissão antes de usar uma ferramenta que muda alguma coisa. No Claude.ai, esse pedido aparece na conversa e é do Claude, não da Memberfy: ele vale para qualquer conector, e as ferramentas de dinheiro e de exclusão vão marcadas como destrutivas, para o Claude avisar com mais destaque.

Se o pedido a cada ação incomoda, dá para deixar uma ferramenta sempre permitida:

- **Na própria conversa**, quando o Claude pede a permissão, ele costuma oferecer a opção de permitir sempre aquela ferramenta.
- **Nas configurações do conector**, em **Configurações › Conectores**, abra a **Memberfy**: a lista mostra as ferramentas, e para cada uma dá para escolher se o Claude pergunta antes ou usa direto. Os nomes exatos das opções são do Claude e podem mudar.

Deixar uma ferramenta sempre permitida **não** desliga a confirmação da Memberfy: uma ferramenta de dinheiro ou de exclusão continua devolvendo o resumo primeiro e só age depois do seu sim. Por isso faz sentido permitir sempre as de consulta e as do dia a dia (posts, eventos, cursos) e manter o pedido nas que mandam e-mail para outras pessoas, como `invite_members` e `issue_certificate`.

O ChatGPT tem um pedido de aprovação parecido, também dele. Ver [Conectar o Claude](/mcp/conectar-o-claude) e [Conectar o ChatGPT](/mcp/conectar-o-chatgpt).

## Boas práticas

- **Leia o resumo, não a pergunta.** O resumo vem da Memberfy, com os valores que vão valer; a pergunta é do assistente.
- **Confirme um de cada vez.** Para vários cupons ou várias exclusões, peça um resumo de cada.
- **Desconfie de um "sim" que você não deu.** O assistente só deve repetir a chamada depois de você responder. Se ele executar sem perguntar, desconecte e revise o histórico da conexão (ver [Segurança e limites](/mcp/seguranca#auditoria)).

## Perguntas frequentes

**E se eu demorar mais de 10 minutos para responder?**
O código vence. Diga "sim" assim mesmo: o assistente recebe a recusa, pede um resumo novo e mostra de novo.

**O assistente pode confirmar sozinho?**
Tecnicamente, o código chega até ele. As instruções da Memberfy mandam esperar o seu sim explícito, e os assistentes seguem. Por isso a regra de ouro é: o que mexe em dinheiro ou apaga, você lê e responde.

**Convidar uma turma pede confirmação?**
Não da Memberfy: o convite sai na primeira chamada. O Claude ainda pede a permissão dele, se a ferramenta não estiver como sempre permitida, e as instruções da Memberfy mandam o assistente mostrar antes quem vai receber o e-mail. Para garantir, peça *"me mostre a lista antes de convidar"*.

**Trocar o papel de alguém ou mudar as configurações pede confirmação?**
Não. As duas coisas rodam na primeira chamada e dá para desfazer pelo painel ou pedindo de novo. O papel de um proprietário continua mudando só por outro proprietário.

**Publicar um produto pede confirmação?**
Não. `publish_product` põe à venda o que você já revisou em rascunho, como o botão do painel. Mudar um preço ou criar um desconto, sim.

## Relacionados

- [Ferramentas](/mcp/ferramentas#pedem-confirmacao)
- [Segurança e limites](/mcp/seguranca)
