# Betalingen verzamelen

Accepteer eenmalige betalingen van respondenten via Stripe.

## Betalingen verzamelen

Verzamel eenmalige betalingen in je formulier. Koppel Stripe, voeg een Betalingsveld in, stel een prijs in, en respondenten betalen via Stripe Checkout.

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

<p>
  Een Stripe-verbinding hoort bij één formulier: koppel Stripe vanuit het formulier waarop je geld wilt verzamelen, en herhaal dit voor het
  volgende formulier. Kaartgegevens gaan nooit via Formstep.
</p>

<p>Het label op het Betalingsblok laat zien hoe de verbinding ervoor staat:</p>

> ⚠️ **Publiceren is geblokkeerd totdat de betalingen compleet zijn**
> <p>
>     Een formulier met een Betalingsveld publiceert pas als elk betalingsblok een ondersteunde valuta heeft met een bedrag op of boven het
>     minimum voor die valuta, en het formulier een gekoppeld Stripe-account heeft met ingeschakelde afschrijvingen.
>   </p>

<h2 id="how-it-works">Hoe de Stripe-koppeling werkt</h2>

<p>
  Formstep gebruikt{' '}
  <a href="https://docs.stripe.com/connect" target="_blank" rel="noopener">
    Stripe Connect
  </a>{' '}
  om je Stripe-account aan je formulier te koppelen. De afschrijving wordt aangemaakt op jouw account, niet op het onze. In de praktijk:
</p>

<p>
  Formstep kan de status van je Stripe-account bekijken (of afschrijvingen zijn ingeschakeld en de onboarding voltooid is) en
  basisinformatie over transacties (betalingsstatus, bedrag, bonnetjeslink). Formstep heeft geen toegang tot je volledige Stripe-saldo,
  klantenlijst of gegevens buiten betalingen via je formulieren.
</p>

<h2 id="set-the-price">Prijs instellen</h2>

<p>
  Kies een valuta en typ een bedrag in het Betalingsblok. Het bedrag moet minstens het Stripe-minimum voor die valuta zijn — $0,50 voor USD
  en EUR, £0,30 voor GBP, ¥50 voor JPY, 3 kr voor SEK en NOK. Stripe hanteert een maximum van net onder de 1.000.000 per afschrijving, dus
  houd bedragen daaronder.
</p>

<p>Ondersteunde valuta's: USD, EUR, GBP, JPY, CAD, AUD, CHF, SEK, NOK, DKK, NZD, SGD, HKD, AED, TRY.</p>

<p>Het Betalingsveld verwerkt alleen eenmalige afschrijvingen. Terugkerende abonnementen horen daar niet bij.</p>

<h2 id="dynamic-pricing">Dynamische prijsstelling</h2>

<p>
  Je kunt het bedrag laten variëren op basis van de antwoorden van de respondent. Voeg de actie <strong>Betalingsbedrag instellen</strong>{' '}
  toe aan een logica-regel boven je Betalingsveld en wijs deze naar het blok.
</p>

<p>
  Elke actie kiest hoe de prijs wordt aangepast — <strong>instellen op</strong>, <strong>verhogen met</strong> of{' '}
  <strong>verlagen met</strong>:
</p>
<ul>
  <li>
    <strong>Instellen op</strong> — vervangt de lopende prijs door een absoluut bedrag.
  </li>
  <li>
    <strong>Verhogen met</strong> / <strong>verlagen met</strong> — past de lopende prijs aan. Stapel er meerdere voor add-ons, toeslagen of
    kortingen; elke actie bouwt voort op het bedrag tot dan toe, en het resultaat komt nooit onder nul.
  </li>
</ul>
<p>De waarde zelf kan zijn:</p>
<ul>
  <li>
    <strong>Een vast getal</strong> — een letterlijk bedrag.
  </li>
  <li>
    <strong>Een veldverwijzing</strong> — kies een <a href="/nl/building-forms/calculated-fields">berekend veld</a> zodat het bedrag de
    antwoorden volgt.
  </li>
</ul>

<p>
  Regels worden uitgevoerd in de volgorde waarin ze in het formulier staan, startend vanaf de prijs op het blok. Een latere{' '}
  <strong>instellen op</strong> overschrijft wat eerdere regels hebben opgeleverd, dus zet je meest specifieke regel als laatste.
</p>

<p>
  Voorbeeld: een ticketformulier heeft een Vervolgkeuzelijst ("Standaard" of "VIP") en een Getal-veld voor de hoeveelheid. Een berekend veld
  vermenigvuldigt de basisprijs met de hoeveelheid. Een logica-regel richt zich op het Betalingsveld: als de Vervolgkeuzelijst "VIP" is,
  wordt het betalingsbedrag <strong>ingesteld op</strong> de waarde van het berekende veld.
</p>

<p>
  Add-on-voorbeeld: een prijs van $50 op het blok, een schakelaar "Snelle levering" die het bedrag met 15 <strong>verhoogt</strong>, en een
  schakelaar "Lid" die het met 5 <strong>verlaagt</strong>. Met beide ingeschakeld betaalt de respondent $60.
</p>

> 💡 **Het blokbedrag is de terugvaloptie**
> <p>
>     De prijs die je instelt op het Betalingsblok is wat respondenten zien voordat een regel wordt geactiveerd. Maak er je meest voorkomende
>     prijs van, zodat het formulier nooit een tijdelijk bedrag toont.
>   </p>

<h2 id="respondent-experience">Ervaring van de respondent</h2>

<p>
  De respondent klikt op <strong>Betaling afronden</strong> op de kaart en Stripe Checkout wordt geopend, gehost door Stripe. Na het betalen
  keren ze terug naar het formulier om af te ronden en te verzenden. Het in rekening gebrachte bedrag wordt op de server opnieuw berekend
  aan de hand van je eigen regels — een gemanipuleerde client kan de prijs niet wijzigen.
</p>

<p>
  Als de betaling mislukt (verlopen kaart, onvoldoende saldo), toont de kaart de foutmelding en een knop <strong>Opnieuw betalen</strong>{' '}
  die Checkout opnieuw opent.
</p>

<h2 id="after-payment">Na betaling</h2>

<p>
  Zodra een respondent heeft betaald, vergrendelt Formstep de vragen die het bedrag hebben bepaald — de voorwaarden en waarden van elke
  regel die het instelde, de velden achter een aangehaald berekend veld, en alles wat bepaalt of het Betalingsblok zichtbaar is.
  Vergrendelde vragen tonen hun antwoorden alleen-lezen met "Vergrendeld omdat dit antwoord is gebruikt voor een voltooide betaling." De
  rest van het formulier blijft bewerkbaar.
</p>

> ⚠️ **Een betaling maakt de inzending definitief**
> <p>
>     Elke formulierversie met een Betalings-, Handtekening- of Afspraak plannen-veld schakelt{' '}
>     <a href="/nl/submissions-analytics/edit-after-submit">bewerken na verzenden</a> uit voor inzendingen die daartegen zijn gedaan.
>   </p>

<h2 id="viewing-payments">Betalingen bekijken</h2>

<p>Betalingen verschijnen samen met de reactie op het tabblad Inzendingen:</p>

<p>
  De betaling gaat ook mee met de inzending: meldingsmails, de PDF, exports, webhooks, Zapier, n8n, Make, aanvraagcallbacks en de API
  bevatten het bedrag, de valuta, de status en de bonnetjeslink onder het Betalingsveld. Zie{' '}
  <a href="/nl/developers/webhooks-reference#bookings-and-payments">Boekingen en betalingen</a> voor de structuur.
</p>

<h2 id="refunds-and-disputes">Terugbetalingen en geschillen</h2>

<p>
  Omdat betalingen rechtstreeks naar jouw Stripe-account gaan, beheer jij zelf terugbetalingen en geschillen. Formstep behoudt het recht om
  namens jou terugbetalingen uit te voeren in gevallen van misbruik of beleidsschendingen. Wanneer Stripe een terugbetaling of een geschil
  meldt, verandert de betaling bij de inzending in <strong>Refunded</strong>, <strong>Partially refunded</strong> of{' '}
  <strong>Disputed</strong>; integraties worden niet opnieuw verzonden.
</p>

<p>Stripe's eigen documentatie behandelt beide uitgebreid:</p>
<ul>
  <li>
    <a href="https://docs.stripe.com/refunds" target="_blank" rel="noopener">
      Terugbetalingen
    </a>
  </li>
  <li>
    <a href="https://docs.stripe.com/disputes" target="_blank" rel="noopener">
      Geschillen
    </a>
  </li>
</ul>

<h2 id="logic-conditions">Logica-condities voor betalingen</h2>

<p>
  Een Betalingsveld kan ook door logica worden gelezen: <strong>bedrag is gelijk aan</strong>, <strong>bedrag is groter dan</strong>,{' '}
  <strong>bedrag is kleiner dan</strong>, <strong>is voltooid</strong> en <strong>is niet voltooid</strong>. Zie{' '}
  <a href="/nl/building-forms/conditional-logic">Conditionele logica</a> voor de volledige operatorreferentie.
</p>

<h2 id="next-steps">Volgende stappen</h2>
<div class="not-prose grid gap-3 sm:grid-cols-2">
  - [Botbeveiliging](/nl/building-forms/captcha-bot-protection) — Blokkeer frauduleuze inzendingen op betalingsformulieren
  - [Inzendingsinbox](/nl/submissions-analytics/submission-inbox) — Bekijk betalingsdetails naast antwoorden
  - [Deellinks](/nl/sharing-publishing/sharing-embedding) — Maak en beheer deellink-URL’s
  - [Berekende velden](/nl/building-forms/calculated-fields) — Dynamische prijzen berekenen uit antwoorden
</div>
