One-Click Payment

Enter the card once. Pay in one click from then on.

The first payment saves the card as a token. Everything after it runs on that token — a returning customer confirming in one tap, or a renewal you charge while they are away.

Back again
•••• 4242•••• 8817
Add new card
Saved cards
Expires 12/29
Pay in one click · $29.00
01 / THE CUSTOMER EXPERIENCE

One-click, from the customer's side.

Two steps, and the card is typed in only the first of them. Everything the customer sees here is rendered by Waffo's checkout — the saved-card list, the one-tap confirm, and the extra check when risk asks for one.

First checkout

Saved only once the payment succeeds.

Back again

One tap. 3DS can still be challenged when risk asks for it.

02 / WHAT YOU HOLD

You store a token, not a card.

One-click is a stored card doing the work — and which credential goes to the network is Waffo's decision, not a branch you write.

  1. One token, one customer, one card

    The token is scoped to that customer and that card under your Waffo account. It is not a card number and not a wallet, and it is worth nothing anywhere else. The card details stay with Waffo.

  2. Unbinding is final

    An expired token can be brought back rather than re-collected, and it can still be unbound. Unbinding is the end of it: a card the shopper adds again comes back as a new token.

  3. Risk checks do not step aside

    Which credential actually goes to the network is Waffo's decision, not a branch you write. And 3DS is still applied dynamically based on risk, so a one-click charge can still be challenged.

03 / FOR DEVELOPERS

What you actually write.

Five surfaces, in the order you would write them. A binding is started on your server, the card is submitted from the browser, and everything after that is your normal order call with a token where the card number used to go.

Start a bindingserver · REST
POST /api/v1/tokenization/generate

{
  "tokenRequestId": "tkr_20260827_001",
  "merchantUserId": "USER_001",
  "tokenType": "CARD",
  "notifyUrl": "https://yourstore.com/webhooks/waffo"
}

# 200 -> { "tokenSessionId": "tks_9f2c..." }
# Hand the session id to the browser. Your API key stays here.
04 / Underneath

The token plugs into the rest of the stack.

A saved credential is not a thing on its own — it lives on the checkout UI, is reused by every renewal, and still goes through the same risk checks on each charge.

Frequently asked questions about one-click payments.

No. What you store is a token scoped to that customer and card under your account. The card details stay with Waffo, and the token is worth nothing outside your account.

Their saved cards, and one confirm. A CVV field appears only on the one charge where a card-network token is not on file yet; after that charge it does not come back for that card. 3DS can still be challenged when risk asks for it.

You unbind it with the token you hold — which works even if that token has expired. The token is then canceled for good; a card the customer adds again comes back as a new token.

You are. Your terms have to say what you will charge, how often, how the amount is worked out, and how the customer cancels, and the customer has to agree to it. Waffo charges against the mandate that first payment created; it cannot write the terms for you.

Companies go live on Waffo. Developers start on Pancake.

Two paths, one promise: you build the product, Waffo runs the payments.