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.

In Express Checkout, the SDK emits a payment_method_created event with a paymentMethodId. Your backend sends that ID to the Payment Intents API to charge the customer.

{
  "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