Payment Methods and tokenization

Payment Methods represent tokenized payment instruments. They let your integration use card or wallet-backed payment details without handling raw card data on your servers.

Use this guide to understand how tokenization, single-use Payment Methods, reusable Payment Methods, Payment Intents, and Setup Intents fit together.

Tokenization

Tokenization is the process of collecting payment details in a customer-facing Paypercut-controlled surface and returning a tokenized object your backend can use.

With the Card Element, call elements.submit() and then paypercut.createPaymentMethod({ elements }). With the Express Checkout Element, read the Payment Method from the confirm event. In both flows, send only the opaque Payment Method ID and your own order reference to your backend.

Your backend can use the Payment Method to confirm a custom Checkout Session or, for integrations that need direct lifecycle control, a Payment Intent.

{
  "amount": 2999,
  "currency": "eur",
  "customer": "01HVZKZ9P8K6QK8J6MZ9E2A9VN",
  "payment_method": "01KAXYZPAYMENTMETHOD123456",
  "confirm": true
}

Do not store raw card numbers, CVC values, wallet cryptograms, or live secrets in your systems or examples. Store Paypercut resource IDs such as customer, payment_method, payment_intent, and payment.

Single-use and reusable Payment Methods

Payment Methods can be single-use or reusable.

Type Meaning Typical source What happens next
Single-use Payment Method Can be used for one confirmation attempt unless promoted for future use. Express Checkout or deferred tokenization. Use it promptly with a Payment Intent.
Reusable Payment Method Attached to a customer and available for later payments. Setup Intent, Checkout setup mode, or Payment Intent with setup_future_usage. Use it with future Payment Intents for the same customer.

A single-use Payment Method is useful when your frontend collects payment details before the backend creates or confirms the Payment Intent. If the Payment Intent has a customer and requests future usage, Paypercut can promote the single-use method to a reusable customer Payment Method during confirmation.

A reusable Payment Method that already belongs to a customer must be used with that same customer. This protects customer ownership and prevents accidental cross-customer reuse.

Save during payment

Use setup_future_usage on a Payment Intent when you want to take a payment now and prepare the payment method for future use.

Value Future use case
on_session The customer will be present for future payments.
off_session Future payments may happen while the customer is not present.

When setup_future_usage is provided during confirmation, it overrides the value stored on the Payment Intent from creation.

For Checkout Sessions in payment mode, saved_payment_method_options.payment_method_save=enabled controls whether Checkout displays an option to save a new payment method for future on-session use.

Save without charging now

Use a Setup Intent when the customer is adding a payment method for future payments and you do not need to collect money immediately. A Setup Intent guides the payment method through any required authentication and saves it for later use.

Common uses include:

  • customer account settings where a card is added for later;
  • subscription signup flows that start with a trial;
  • platform or marketplace onboarding flows that need a payment method before the first charge;
  • backup payment methods for invoices or recurring billing.

You can also create a Checkout Session in setup mode when you want Paypercut to host or embed the collection flow.

Reuse later

When charging a saved Payment Method later, create and confirm a Payment Intent with:

  • the saved payment_method;
  • the matching customer;
  • off_session=true, off_session=one_off, or off_session=recurring when the customer is not present.

Use off_session=recurring for scheduled recurring reuse. Use off_session=true or off_session=one_off for unscheduled customer-not-present reuse.

If the customer is present and can authenticate, omit off_session.

3D Secure and payment method details

3D Secure can be required when a customer confirms a card payment. When more customer action is needed, the Payment Intent returns status=requires_action and includes the next step in next_action.

After the payment is attempted, inspect the Payment object for payment method details:

payment.payment_method_details.card.three_d_secure

This is where the API exposes 3D Secure result details such as authentication flow, ECI, result, transaction ID, exemption indicator, and protocol version when they are available.

Operational rules

  • Create a new Payment Intent for each order or customer checkout session.
  • Use idempotency keys when creating server-side resources that might be retried.
  • Use Checkout Sessions unless your flow needs direct Payment Intent control.
  • Treat single-use Payment Methods as short-lived and use them promptly.
  • Do not reuse a Payment Method across customers.
  • Use webhooks for fulfillment and reconciliation instead of relying only on browser redirects.

API reference