> ## 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.

# Solución de problemas y preguntas frecuentes

> Problemas comunes, qué está pasando realmente, y cómo solucionarlos.

Soluciones para los problemas que surgen con más frecuencia, cada uno
mapeado al código de error o comportamiento real detrás. Para la lista
completa de códigos, consulta la [referencia de errores](/docs/es/reference/error-table).

## "No estoy recibiendo correo por los envíos"

Casi siempre es uno de estos, en orden de probabilidad:

1. **El correo de destino todavía no está verificado.** El destino de un
   formulario nuevo retiene toda la entrega hasta que ingreses el código
   de 6 dígitos que Formpaste le envió por correo. Revisa la pestaña
   Setup del formulario en el [panel](https://app.formpaste.com) en
   busca de un estado de "pending verification". Consulta [Tu primer
   formulario](/docs/es/first-form#verify-the-destination-email).
2. **El envío llegó a cuarentena, no al inbox.** Los envíos en cuarentena
   nunca se envían por correo, ese es el propósito de la
   [cuarentena](/docs/es/features/quarantine). Revisa la pestaña **Spam** del
   formulario; si está ahí, consulta la sección de cuarentena abajo.
3. **Estás sobre tu cuota mensual.** Una vez que se cruza el límite de
   envíos de un plan para el mes de facturación, los envíos siguientes se
   aceptan y almacenan pero se retienen en lugar de enviarse por correo
   hasta que el mes cambie o mejores tu plan. Consulta [Límites del plan
   gratuito](/docs/es/features/free-plan-limits).
4. **Revisa spam/correo no deseado en tu buzón real**, fuera del control
   de Formpaste, pero la falsa alarma más común.

## "403 domain\_not\_allowed"

El origen de la página que envía no está en la lista permitida de este
formulario. Abre la pestaña Setup del formulario → **Allowed domains** y
agrega el dominio desde el que se sirve el formulario (por ejemplo,
`example.com` para `https://example.com/contact`). Si la lista permitida
está vacía, se acepta cualquier origen, así que esto solo se activa una
vez que has restringido un formulario. Consulta [Lista permitida de
dominios](/docs/es/features/custom-domains).

## "401 invalid\_access\_key"

El campo `access_key` no se envió, no coincide con ningún formulario, o
pertenece a un formulario que fue eliminado. Vuelve a copiar la clave
desde la pestaña Setup del formulario en el panel (o llama a
[`get_snippet`](/docs/agents/get-snippet) con el `formId` para obtener un
snippet con la clave real ya incluida) y asegúrate de que sea el valor de
un campo `access_key` en el cuerpo de la solicitud, no un encabezado
`Authorization`. `/submit` no acepta autenticación Bearer; eso es solo
para el [servidor MCP](/docs/agents/mcp-server).

## "Mi envío quedó en cuarentena"

Formpaste puntúa cada envío con heurísticas de spam (honeypot, tiempo,
densidad de enlaces, tasa, correo desechable/duplicado) y enruta cualquier
cosa sospechosa a la pestaña **Spam** en lugar de descartarla, consulta
[Filtrado de spam](/docs/es/features/spam-filtering) para lo que se verifica.
Causas comunes de un falso positivo:

* El campo honeypot `botcheck` recibió accidentalmente un `value` real, o
  tu CSS lo oculta de una forma que un autocompletado del navegador o una
  extensión todavía puede rellenar.
* El formulario se envió más rápido de lo que `_ts` sugiere que un humano
  podría completarlo, común en pruebas automatizadas; no suele ser un
  falso positivo en tráfico real de producción.
* El `email` enviado pertenece a un dominio de proveedor desechable y
  `allow_disposable_email` está desactivado para este formulario.

Puedes ver los envíos en cuarentena en Free (solo lectura). Reentregar uno
("no spam") requiere la [acción de rescate de Pro](/docs/es/features/quarantine-rescue),
en Free, elimina la causa (arregla la conexión del honeypot, o activa
`allow_disposable_email`) y haz que el visitante lo reenvíe.

## "400 missing\_access\_key / invalid\_body"

`missing_access_key` significa que no se envió ningún campo `access_key`
en absoluto, verifica que el nombre del input sea exactamente
`access_key`, sin errores de tipeo, y que realmente esté dentro del
`<form>` (o el cuerpo `FormData`/JSON) que se envía. `invalid_body`
significa que el cuerpo de la solicitud no pudo interpretarse como JSON o
datos de formulario, verifica que `Content-Type` coincida con lo que
realmente estás enviando (`application/json` para un cuerpo JSON, dejado
al valor por defecto del navegador para un formulario HTML simple o
`FormData`).

## "400 invalid\_redirect"

La URL del campo `redirect` no está en la lista de dominios permitidos de
este formulario. Agrega ese dominio a **Allowed domains**, o elimina el
campo `redirect` si estás enviando vía `fetch`/AJAX y no necesitas una
navegación de página. Consulta [Redirecciones](/docs/es/features/redirects).

## "403 upgrade\_required"

Estás en Free e intentaste usar o configurar una capacidad exclusiva de
Pro: rescate de cuarentena, respuesta automática, destinatarios
adicionales/CC, webhooks, o subida de archivos. Consulta [Límites del
plan gratuito](/docs/es/features/free-plan-limits) para la lista completa, o
[Plan Pro](/docs/es/features/pro-plan) para mejorar.

## "429 rate\_limited"

Demasiados envíos desde la misma fuente en una ventana corta. Esto es
independiente del contenido, se activa incluso con tráfico legítimo si es
en ráfagas. Ralentiza la lógica de reintentos (backoff exponencial, no un
bucle ajustado) y se resuelve por sí solo.

## "Mi webhook no se activa"

Los webhooks solo se activan para envíos entregados y que no sean spam,
un envío en cuarentena nunca activa uno. Confirma que `webhook_url` está
establecido y que Pro está activo en la cuenta, revisa el registro de
entregas por formulario del panel en busca de intentos fallidos, y
confirma que tu endpoint sea `https://` y devuelva un `2xx` rápidamente.
Consulta [Webhooks](/docs/es/features/webhooks) para el tiempo de reintentos y la
receta de verificación de firma.

## "¿Necesito un CAPTCHA?"

No, Formpaste está diseñado específicamente para que no agregues uno. El
spam se detecta con el honeypot `botcheck`, el tiempo `_ts`, y
heurísticas del lado del servidor en su lugar. Consulta [Prevenir
spam](/docs/es/guides/preventing-spam).

## "¿Hay una API REST para envíos/formularios?"

No. Los formularios se crean en el panel o mediante la herramienta MCP
[`create_form`](/docs/agents/create-form); los envíos se leen mediante el
panel, la exportación CSV, o la herramienta MCP
[`list_submissions`](/docs/agents/list-submissions). Consulta [Recuperar
envíos](/docs/es/reference/submissions-api) para el desglose completo, no hay
ninguna API REST `GET`/`POST` para formularios o envíos más allá de
`POST /submit` en sí.

<CardGroup cols={2}>
  <Card title="Referencia de errores" icon="triangle-exclamation" href="/docs/es/reference/error-table">
    Cada código, su estado HTTP, y su mensaje.
  </Card>

  <Card title="Referencia de opciones" icon="sliders" href="/docs/es/reference/options">
    Los campos reservados y la configuración del panel con la que se relacionan estos errores.
  </Card>
</CardGroup>
