# Sending through your Resend account

> On the Business plan or above, the community's e-mails go out through the community's own Resend account, with its domain and reputation. Which e-mails change, the step by step in Resend, verification, quotas and what happens when the key fails.

On the **Business** plan or above, the community can send its e-mails through its **own [Resend](https://resend.com) account**: with a sender on its own domain (`Community <hello@mail.yourcommunity.com>`), its own reputation and its own delivery dashboard. The plan's campaign recipient and workflow e-mail quotas no longer apply to what goes out through its account.

It is in **Settings › Sending through your Resend account**, for the owner and the admin. Below Business, the page says sending *"is available on the Business plan and above"*. **Connect the Resend account** asks for the **Sender name**, the **Sender address**, **Reply to (Reply-To, optional)**, the **Resend API key**, the **Webhook signing secret** and accepting the **Data notice**. Once connected, the page shows the **Webhook address** with **Copy**, the status (**Pending**, **Active**, **Error** or **Paused by the plan**), the last error, the **Last event received** and **Verified on**, with the **Verify**, **Change** and **Disconnect** buttons (which asks *"Disconnect the Resend account?"*). In campaigns, the quota meter is now called **Recipients through your Resend account**.

## Which e-mails change

**Rule:** an e-mail goes out through Memberfy if it carries access (a code, a password link, an invite with a sign-in link), talks about account security, is from Memberfy to the community, or is an internal notice to the team. Everything else belongs to the community. That way, if the community's key fails, nobody is locked out.

| Always through Memberfy | Through the community's Resend account |
|---|---|
| Sign-in, access code, e-mail verification, password (recovery and changed), sign-in attempts notice | [Campaigns](/notificacoes/campanhas-de-email), manual and automatic |
| Invites with an access link (import, speaker, reviewer, approved sign-up) | The **Send e-mail** step of [workflows](/notificacoes/workflows) |
| Terms and privacy | The modules' [new content notices](/notificacoes/avisos-de-novidade) and the e-mails for events, bookings and calls |
| Notices to the team (workflow approval and error, sending reputation, integration notices and notices about this connection) | Receipts, renewals and tickets; customized [default e-mails](/notificacoes/emails-padrao), when they belong to the community |

The calendar invite (`.ics`) for bookings, scheduling, Networking and 1:1s follows the sender the e-mail goes out from.

## Step by step

*Role: owner or admin, on the Business plan or above.*

**In Resend:**

1. Create the account and add the sending **domain** (preferably a subdomain, such as `mail.yourcommunity.com`). Publish in your DNS the records Resend shows and wait for the domain to be **verified**.
2. Create an **API key** (`re_…`) with **sending-only** permission, restricted to that domain.
3. Create a **webhook** pointing to the address Memberfy gives your community (`https://api.memberfy.net/webhooks/email/c/…`), with the sent, delivered, opened, clicked, bounced, complained, delayed, failed and suppressed events. Copy the **signing secret** (`whsec_…`).

**In Memberfy:**

4. Enter the key, the webhook secret, the sender (name and address on the verified domain) and, if you want, the reply address (*Reply-To*). Accept the data notice: members' addresses will go to your Resend account, and the community chooses this processor.
5. Click **Verify**. Memberfy sends a test e-mail, from your sender, to you.
6. The connection becomes **active** when that test's delivered event arrives, signed, through the webhook. The same check proves the key, the domain and the webhook.

The sender cannot be a free mailbox (Gmail, Outlook…) or Memberfy's. The key and the secret never come back once saved: only the last 4 characters show. Every change is logged.

## The connection statuses

| Status | What it means |
|---|---|
| **Pending** | The test's delivered event has not arrived through the webhook yet |
| **Active** | The community's e-mails go out through its account |
| **Error** | Resend refused the key (see [When the key fails](#when-the-key-fails)) |
| **Paused by plan** | The plan dropped below Business: everything goes out through Memberfy |

## Quotas

With the connection active, what goes out through the community's account **does not count** toward the plan's quotas of campaign recipients per month and workflow e-mails per day. Instead, an anti-abuse ceiling applies: **150,000 campaign recipients per month** and **1,750 workflow e-mails per day**.

Still in force: campaign sends per day, week and month (see [Sending quota](/notificacoes/campanhas-de-email#sending-quota)), unsubscribing and the categories (see [E-mails from this community](/notificacoes/emails-desta-comunidade)), excluding people who complained or had a permanent bounce, and [sending reputation](/notificacoes/reputacao-de-envio). They protect the recipients, not the cost.

## When the key fails

If Resend refuses the key (it was revoked, or the domain is no longer verified):

- The connection goes to **error**, and the owner and the admin get a bell notice and an e-mail (through Memberfy), once.
- The campaign being sent **pauses**, and the workflows' **Send e-mail** step fails, with the reason.
- Receipts, tickets, renewals and module notices **go out through Memberfy**, with the default sender, so nobody goes without.
- When you **Verify** again with the right key, the connection becomes active again, and the paused campaign **picks up where it stopped**.

A temporary refusal from Resend (too many sends or instability) just waits and tries again, through the same account.

**If the plan drops below Business**, the connection pauses at once, everything goes back to Memberfy, with the plan's quotas, and the team is notified. The key and the secret are deleted 30 days later.

## Frequently asked questions

**Do I need my own domain?**
Yes: the sender has to be on a domain verified in your Resend account.

**Do sign-in e-mails go out through my account too?**
No. Sign-in, codes, password and invites with an access link always go out through Memberfy.

**Who pays for sending?**
What goes out through your Resend account is billed by Resend to your account, under the plan you have there.

**What about unsubscribing?**
It stays with Memberfy: each person's unsubscribe link and categories work the same.

## In the API

`GET`, `PUT` and `DELETE /api/email-provider` and `POST /api/email-provider/verify`, for the owner and the admin only (other roles get `403`). The `GET` answers on any plan, with `planAllowed`; saving and verifying below Business return `403` `emailProvider.planRequired`. The `PUT` takes `apiKey`, `webhookSecret`, `fromEmail`, `fromName`, `replyTo` and, the first time, `acceptDataNotice: true`. The response carries `status` (`pending`, `active`, `error` or `paused_by_plan`), `apiKeyLast4`, `webhookSecretLast4`, `webhookUrl` (the address to register as a webhook in Resend), `lastError`, `lastEventAt`, `verifiedAt` and `retentionEndsAt`; never the key. See [Email provider](/api/referencia/email-provider) in the API reference.

## Through the assistant (MCP)

Ask to see the connection status (*"are e-mails going out through our Resend account yet?"*, [`get_email_provider`](/mcp/ferramentas-comunidade#get-email-provider)), to change the sender ([`update_email_provider`](/mcp/ferramentas-comunidade#update-email-provider)), to send the verification ([`verify_email_provider`](/mcp/ferramentas-comunidade#verify-email-provider)) or to disconnect ([`disconnect_email_provider`](/mcp/ferramentas-comunidade#disconnect-email-provider), with confirmation). Connecting, the key and the secret stay in the app: the assistant never takes or shows the key.

## Related

- [E-mail campaigns](/notificacoes/campanhas-de-email)
- [E-mails from this community](/notificacoes/emails-desta-comunidade)
- [Sending reputation](/notificacoes/reputacao-de-envio)
- [Plan and extensions](/configuracoes/plano)
