--- url: >- https://acquirer-api-docs-v4-en.pingpongx.com/en/notes/onlinePayment/features/tokenization/cardOnFileNonHosted/index.md description: >- The merchant server uses the payment credential token obtained after saving a card to call the order-and-pay API for repeat purchases, without involving the checkout page. If the token was created under the CardOnFile path on the first payment, subsequent payments can be processed as `CIT CoF` and typically do not require the shopper to re-enter CVV in PingPong. --- ## Use Cases - The merchant manages the card list and payment interaction directly, without using PingPong checkout - The merchant already maintains a local mapping between token and stored card information - Subsequent payments are triggered while the cardholder is present, which fits one-click checkout scenarios ## Prerequisites - Completed the [First Payment and Save Card](/en/notes/onlinePayment/features/tokenization/cardOnFile/) flow and obtained a payment credential token that can be used for repeat purchases - You know whether `bizType=CardOnFile` was passed in the first saved-card transaction - You have completed merchant-side notice and consent for card storage and subsequent use ## Interaction Flow ```mermaid sequenceDiagram participant Cardholder as 💳 Cardholder participant MerchantFrontend as 💻 Merchant Frontend participant MerchantBackend as 🏪 Merchant Backend participant PP as 🔄 PingPongCheckout Cardholder->>+MerchantFrontend: 1. Start checkout MerchantFrontend->>+MerchantBackend: 2. Submit order MerchantBackend->>+PP: 3. Request order and payment (pass payment credential token) PP-->>-MerchantBackend: 4. Return response result MerchantBackend-->>-MerchantFrontend: 5. Return initial payment status Note over Cardholder,PP: token payment process PP->>+MerchantBackend: 6. 📡 Async notification MerchantBackend-->>-PP: 7. 🟢 Response OK loop Poll payment status MerchantFrontend->>+MerchantBackend: 8. Query payment status MerchantBackend-->>-MerchantFrontend: 9. Return current payment status Note over MerchantFrontend: Stop polling when status becomes final end MerchantFrontend-->>-Cardholder: 10. Display final payment result ``` ## Integration Steps ::: steps 1. Client places the order The shopper starts order creation on the merchant platform. 2. Merchant server requests order and payment Call the [Order and Pay API](/en/notes/checkout/api/uniformly/) - Pass the payment credential `token` - If `bizType=CardOnFile` was passed when the token was first created, every subsequent transaction using that token must continue to pass `bizType=CardOnFile` ::: note PingPong platform rule: bizType=CardOnFile inheritance First payment passed `bizType=CardOnFile` → all subsequent token payments must also pass `bizType=CardOnFile`. First payment did not pass it → do not pass it on subsequent payments either. Example key fields for a CardOnFile token repeat purchase: ```json title="Key fields in bizContent (CardOnFile scenario)" { "merchantUserId": "USER_12345", "token": "TOKEN_123456", "bizType": "CardOnFile" } ``` ::: ::: warning Note No CVV input for subsequent payments does not mean extra authentication will never be required. Whether 3DS, challenge, or declines occur still depends on issuer risk controls, regulatory requirements, and transaction risk. ::: ::: note Field distinction The `token` passed here is the payment credential token returned after the first saved-card payment succeeds. For subsequent server-side repeat purchases, continue passing it in the `token` field of the `uniformly` request. ::: 3. The Order and Pay API synchronously returns the payment result The [Order and Pay API](/en/notes/checkout/api/uniformly/) immediately returns the processing result. 4. Async notification pushes the final result The final payment result will be pushed through the async notification mechanism. See [Async Notification](/en/notes/notify/) for details. ::: ## Related Documentation - [First Payment and Save Card](/en/notes/onlinePayment/features/tokenization/cardOnFile/) - Save card information during the first payment and obtain a reusable payment credential - [Checkout Repeat Purchase (Stored Card + CVV)](/en/notes/onlinePayment/features/tokenization/cardOnFileCVV/) - Collect CVV in checkout for repeat purchases - [Order and Pay API](/en/notes/checkout/api/uniformly/) - Core API for Non-Hosted mode