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

# Tu primer formulario

> Crea un formulario, verifica su correo de destino y configura lo básico.

Esto recorre la creación de un formulario en el panel de principio a fin,
incluido el único paso manual que necesita todo formulario nuevo: verificar
a dónde va su correo.

## Crea el formulario

1. Inicia sesión en el [panel](https://app.formpaste.com).
2. Haz clic en **New form**.
3. Dale un nombre (solo para tu propia referencia, los visitantes nunca lo
   ven) y un **correo de destino**, a dónde se envían los envíos.

Formpaste genera una **clave de acceso** (`fp_…`) para el formulario. Este
es el valor que incluye cada envío para indicar a qué formulario
pertenece. Está diseñado para vivir en el código fuente de una página
pública, no es una credencial portadora y no necesita mantenerse en secreto
como sí lo requiere un token de API.

<Info>
  No hay una llamada REST separada de "crear formulario". Los formularios se
  crean en el panel, o mediante un agente de IA a través de la [herramienta
  `create_form` del servidor MCP](/docs/agents/create-form), ambos caminos
  terminan en el mismo lugar.
</Info>

## Verifica el correo de destino

La primera vez que se usa el correo de destino de un formulario, Formpaste
envía un código de 6 dígitos a esa dirección y **retiene la entrega** hasta
que el código se ingresa en el panel.

Esto existe para que un formulario no pueda apuntar a una bandeja de
entrada que no controlas y usarse para spamearla, un agente que crea un
formulario para ti no puede completar este paso por su cuenta (no puede
leer tu bandeja de entrada), así que siempre es una acción humana.

1. Abre el código en el correo que te enviaron.
2. Ingrésalo en la pestaña Setup del formulario en el panel.
3. Una vez verificado, los envíos empiezan a entregarse a esa dirección de
   inmediato.

Si creas un segundo formulario usando un correo que ya está verificado en
tu cuenta, la entrega empieza de inmediato, sin repetir el OTP.

## Configura lo básico

Desde la pestaña Setup del formulario puedes establecer:

* **Dominios permitidos**: una lista de dominios autorizados a enviar a este
  formulario. Esta, y no CORS, es la verdadera frontera de seguridad
  (consulta [Filtrado de spam](/docs/es/features/spam-filtering)).
* **Permitir correos desechables**: activa o desactiva si los envíos de
  proveedores de correo desechable se aceptan o se ponen en cuarentena.
* **Asunto de la notificación**: una línea de asunto personalizada para el
  correo de notificación (`notification_subject`).
* **Nombre visible del remitente**: el nombre visible desde el que llegan
  los envíos (`sender_name`).
* **Mapeo del campo de respuesta**: qué campo enviado (por ejemplo `email`)
  se convierte en el encabezado `Reply-To`, para que puedas presionar
  "responder" y contestarle directamente al visitante (`reply_to_field`).
* **Redirección**: una URL opcional a la que llegan los visitantes tras un
  envío sin JS; consulta [Redirecciones](/docs/es/features/redirects).

## Pega el snippet

Copia la clave de acceso y el snippet desde la pestaña Setup, o consulta
[Snippets por framework](/docs/es/framework-snippets) para los seis frameworks
compatibles (HTML, React, Next.js, Astro, Vue, Svelte), cada uno un
formulario simple y ya conectado.

## Siguiente

<CardGroup cols={2}>
  <Card title="Snippets por framework" icon="brackets-curly" href="/docs/es/framework-snippets">
    Snippets listos para cada framework compatible.
  </Card>

  <Card title="Filtrado de spam" icon="shield" href="/docs/es/features/spam-filtering">
    Cómo se filtran los envíos.
  </Card>

  <Card title="Cuarentena" icon="box-archive" href="/docs/es/features/quarantine">
    A dónde van los envíos sospechosos en lugar de descartarse.
  </Card>

  <Card title="Servidor MCP" icon="server" href="/docs/agents/mcp-server">
    Crea y configura formularios a través de un agente en lugar del panel.
  </Card>
</CardGroup>
