Skip to main content
Secure Fields collected card data in PCI-compliant iframes, so your code never touched the raw PAN. You created each field (pan, expiration, cvv), placed it in your layout, generated a token, POSTed it from your backend, and called yuno.continuePayment() to finish. In the unified API your field code is nearly unchanged: same field names, same options, same onChange. The one rename: mount a field with .mount('#sel') instead of .render('#sel'). What changes around it is bigger: the fields come from the Transaction (no second argument bag), and the three-step finish (generateTokenWithInformation → backend POST → continuePayment()) collapses into one repeatable start().

Before you start

  • Load the unified SDK bundle instead of the legacy one and initialize it as the side-by-side shows: window.Yuno.initialize(...) becomes SdkPayments.initialize(...). Your public API key and the checkout sessions your backend creates do not change (Before you begin).
  • Decide who creates the payment. The checkout session’s workflow must match that decision:
A default-workflow session with no createPayment override ends in INTERNAL_ERROR: the backend rejects the SDK’s payment creation. See createPayment.

Side-by-side

What changes

Grouped in the order you edit the code. Renamed: same role, new name. Moved: same value, new owner. Removed: nothing to call. The last column is the only thing you have to do beyond the rename.

Initialization and config

Callbacks

Views

Entry points