When to use this flow
Use Waffo Checkout card binding when you already use Waffo Checkout and need to charge the same user after the first payment for:- Scheduled MIT payments on an agreed billing schedule
- Unscheduled MIT payments while the user is offline
- A merchant-managed billing schedule implemented with
ONE_TIME_PAYMENT
End-to-end sequence
How it differs from merchant-side card binding
Prerequisites
- You have completed the Checkout integration.
- The order uses
ONE_TIME_PAYMENT. - Your merchant account has a card payment method that supports MIT. When
setupFutureUsage: true, Waffo offers only MIT-capable payment methods. - Your merchant account has been allowlisted by Waffo for MIT. You cannot initiate MIT before approval.
- You use a stable
userInfo.userIdfor the same user. Pass the same user ID when using the token later.
Integration steps
1
Create a payment and declare future use
Call Create payment and set Do not provide both
setupFutureUsage: true in paymentInfo.paymentInfo.setupFutureUsage and paymentInfo.userPaymentAccessToken. The first creates a new token; the second uses an existing token.2
Send the user to Checkout
Parse
orderAction as you would for a regular Checkout payment, then redirect the user to Waffo Checkout. The user enters a new card and completes the payment.If the user selects an existing saved card, Waffo reuses it instead of binding the same card again.3
Get the token from the payment notification
Waffo Checkout card binding does not send Store Do not wait for
TOKENIZATION_NOTIFICATION. After the payment succeeds, Waffo sends PAYMENT_NOTIFICATION to the order’s notifyUrl. Read the generated token from result.paymentInfo.userPaymentAccessToken.Payment notification excerpt with the fields used in this flow:result.paymentInfo.userPaymentAccessToken after payment success. If the payment notification is not delivered, call POST /api/v1/order/inquiry, pass either paymentRequestId or acquiringOrderId, and read the same field from its response. For example:TOKENIZATION_NOTIFICATION.4
Use the token for MIT
For a subsequent charge, pass the token from the payment notification as
paymentInfo.userPaymentAccessToken and set merchantInitiatedMode.merchantInitiatedMode supports:scheduled: Charge on a pre-agreed, fixed scheduleunscheduled: Merchant-initiated charge without a fixed schedule
Troubleshooting
No payment method is available
WhensetupFutureUsage: true, Waffo filters out payment methods that do not support MIT. Confirm that your merchant account has an MIT-capable card agreement. Contact Waffo technical support if no eligible method remains.
Payment succeeded but the token has not arrived
Confirm that you receivedPAYMENT_NOTIFICATION and read result.paymentInfo.userPaymentAccessToken. If the notification is not delivered, call Order Inquiry and read the same field. Waffo Checkout card binding does not send TOKENIZATION_NOTIFICATION.