# Cobro de pagos

Acepta pagos únicos de los encuestados a través de Stripe.

## Cobro de pagos

Cobra pagos únicos dentro de tu formulario. Conecta Stripe, inserta un campo de Pago, establece un precio y los encuestados pagan a través de Stripe Checkout.

<h2 id="connect-stripe">Conectar Stripe</h2>

<p>
  Una conexión de Stripe pertenece a un solo formulario: conéctala desde el formulario en el que quieres cobrar, y repite el proceso para el
  siguiente. Los datos de la tarjeta nunca pasan por Formstep.
</p>

<p>La insignia del bloque de Pago te indica en qué punto está la conexión:</p>

> ⚠️ **La publicación se bloquea hasta que los pagos estén completos**
> <p>
>     Un formulario con un campo de Pago no se publica hasta que todos los bloques de pago tengan una moneda admitida y un importe igual o
>     superior al mínimo de esa moneda, y el formulario tenga una cuenta de Stripe conectada con los cobros habilitados.
>   </p>

<h2 id="how-it-works">Cómo funciona la conexión con Stripe</h2>

<p>
  Formstep usa{' '}
  <a href="https://docs.stripe.com/connect" target="_blank" rel="noopener">
    Stripe Connect
  </a>{' '}
  para vincular tu cuenta de Stripe a tu formulario. El cargo se crea en tu cuenta, no en la nuestra. En la práctica:
</p>

<p>
  Formstep puede ver el estado de tu cuenta de Stripe (si los cobros están habilitados y la incorporación está completa) e información
  básica de las transacciones (estado del pago, importe, enlace al recibo). No puede leer tu saldo de Stripe, tu lista de clientes ni nada
  fuera de los pagos realizados a través de tus formularios.
</p>

<h2 id="set-the-price">Establecer el precio</h2>

<p>
  Elige una moneda y escribe un importe en el bloque de Pago. El importe debe ser al menos el cobro mínimo de Stripe para esa moneda — $0.50
  para USD y EUR, £0.30 para GBP, ¥50 para JPY, 3 kr para SEK y NOK. Stripe limita un solo cargo a poco menos de 1,000,000, así que mantén
  los importes por debajo de esa cifra.
</p>

<p>Monedas admitidas: USD, EUR, GBP, JPY, CAD, AUD, CHF, SEK, NOK, DKK, NZD, SGD, HKD, AED, TRY.</p>

<p>El campo de Pago admite únicamente cargos únicos. Las suscripciones recurrentes no forman parte de él.</p>

<h2 id="dynamic-pricing">Precios dinámicos</h2>

<p>
  Puedes variar el importe según las respuestas del encuestado. Añade una acción <strong>Establecer importe de pago</strong> a una regla de
  lógica encima de tu campo de Pago y apúntala al bloque.
</p>

<p>
  Cada acción elige cómo cambia el precio — <strong>establecer en</strong>, <strong>aumentar en</strong> o <strong>disminuir en</strong>:
</p>
<ul>
  <li>
    <strong>Establecer en</strong> — reemplaza el precio acumulado por un importe absoluto.
  </li>
  <li>
    <strong>Aumentar en</strong> / <strong>Disminuir en</strong> — ajusta el precio acumulado. Encadena varias para recargos, suplementos o
    descuentos; cada una se suma al importe acumulado hasta ese momento, y el resultado nunca baja de cero.
  </li>
</ul>
<p>El valor en sí puede ser:</p>
<ul>
  <li>
    <strong>Un número fijo</strong> — un importe literal.
  </li>
  <li>
    <strong>Una referencia a un campo</strong> — elige un <a href="/es/building-forms/calculated-fields">campo calculado</a> para que el
    importe siga las respuestas.
  </li>
</ul>

<p>
  Las reglas se ejecutan en el orden en que aparecen en el formulario, partiendo del precio del bloque. Un <strong>establecer en</strong>{' '}
  posterior sobrescribe lo que hayan producido las reglas anteriores, así que pon tu regla más específica al final.
</p>

<p>
  Ejemplo: un formulario de entradas tiene un Desplegable ("Estándar" o "VIP") y un campo Número para la cantidad. Un campo calculado
  multiplica el precio base por la cantidad. Una regla de lógica apunta al campo de Pago: si el Desplegable es "VIP",{' '}
  <strong>establece</strong> el importe del pago al del campo calculado.
</p>

<p>
  Ejemplo de complemento: un precio de $50 en el bloque, un interruptor "Entrega urgente" que <strong>aumenta</strong> el importe en 15, y
  un interruptor "Miembro" que <strong>disminuye</strong> el importe en 5. Con ambos activados, el encuestado paga $60.
</p>

> 💡 **El precio del bloque es el valor de reserva**
> <p>
>     El precio que configures en el bloque de Pago es lo que ven los encuestados antes de que se active ninguna regla. Ponlo en tu precio más
>     habitual para que el formulario nunca muestre un importe de marcador de posición.
>   </p>

<h2 id="respondent-experience">Experiencia del encuestado</h2>

<p>
  El encuestado hace clic en <strong>Completar pago</strong> en la tarjeta y se abre Stripe Checkout, alojado por Stripe. Después de pagar,
  vuelve al formulario para terminar y enviarlo. El importe cobrado se recalcula en el servidor a partir de tus propias reglas — un cliente
  manipulado no puede cambiar el precio.
</p>

<p>
  Si el pago falla (tarjeta caducada, fondos insuficientes), la tarjeta muestra el error y un botón Reintentar pago que vuelve a abrir
  Checkout.
</p>

<h2 id="after-payment">Después del pago</h2>

<p>
  En cuanto un encuestado paga, Formstep bloquea las preguntas que alimentaron el importe — las condiciones y valores de cualquier regla que
  lo estableció, los campos detrás de un campo calculado referenciado, y todo lo que controle si el bloque de Pago es visible. Las preguntas
  bloqueadas muestran sus respuestas de solo lectura con "Bloqueado porque esta respuesta se usó para un pago completado." El resto del
  formulario sigue siendo editable.
</p>

> ⚠️ **Un pago hace que el envío sea definitivo**
> <p>
>     Cualquier versión del formulario que contenga un campo de Pago, Firma o Programar cita desactiva{' '}
>     <a href="/es/submissions-analytics/edit-after-submit">editar después de enviar</a> para los envíos hechos con ella.
>   </p>

<h2 id="viewing-payments">Ver pagos</h2>

<p>Los pagos aparecen junto con la respuesta en la pestaña Envíos:</p>

<p>
  El pago también sale con la respuesta: los correos de notificación, el PDF, las exportaciones, los webhooks, Zapier, n8n, Make, los
  callbacks de solicitud y la API llevan su importe, moneda, estado y enlace al recibo bajo el campo de Pago. Consulta{' '}
  <a href="/es/developers/webhooks-reference#bookings-and-payments">Reservas y pagos</a> para ver el formato.
</p>

<h2 id="refunds-and-disputes">Reembolsos y disputas</h2>

<p>
  Los pagos llegan a tu cuenta de Stripe, así que tú gestionas los reembolsos y las disputas. Formstep se reserva el derecho de emitir
  reembolsos en tu nombre en casos de abuso o infracciones de la política. Cuando Stripe informa de un reembolso o una disputa, el pago de
  la respuesta cambia a <strong>Refunded</strong>, <strong>Partially refunded</strong> o <strong>Disputed</strong>; las integraciones no se
  envían de nuevo.
</p>

<p>La propia documentación de Stripe cubre ambos casos en profundidad:</p>
<ul>
  <li>
    <a href="https://docs.stripe.com/refunds" target="_blank" rel="noopener">
      Reembolsos
    </a>
  </li>
  <li>
    <a href="https://docs.stripe.com/disputes" target="_blank" rel="noopener">
      Disputas
    </a>
  </li>
</ul>

<h2 id="logic-conditions">Condiciones de lógica de pago</h2>

<p>
  Un campo de Pago también puede leerse mediante lógica: <strong>el importe es igual a</strong>, <strong>el importe es mayor que</strong>,{' '}
  <strong>el importe es menor que</strong>, <strong>está completado</strong> y <strong>no está completado</strong>. Consulta{' '}
  <a href="/es/building-forms/conditional-logic">Lógica condicional</a> para la referencia completa de operadores.
</p>

<h2 id="next-steps">Próximos pasos</h2>
<div class="not-prose grid gap-3 sm:grid-cols-2">
  - [Protección contra bots](/es/building-forms/captcha-bot-protection) — Bloquea envíos fraudulentos en formularios de pago
  - [Bandeja de respuestas](/es/submissions-analytics/submission-inbox) — Ve los detalles de pago junto con las respuestas
  - [Compartir enlaces](/es/sharing-publishing/sharing-embedding) — Crea y gestiona las URLs de enlaces para compartir
  - [Campos calculados](/es/building-forms/calculated-fields) — Calcular precios dinámicos a partir de las respuestas
</div>
