Key parameters (checkout session creation)
When creating a checkout session on your backend for payment flows, the following parameters are commonly used across Android SDKs:Payment parameters (full reference)
Parameters for payment flows. All parameters used in Payment flows (Android) are listed here with full detail.YunoConfig options (initialize)
Runtime behavior and appearance are configured via theYunoConfig data class when calling Yuno.initialize(context, publicApiKey, config). All parameters used across Android payment and enrollment flows are listed below. For visual styling (fonts, colors, buttons), see SDK customizations (Android).
Enrollment parameters (full reference)
Parameters for enrollment flows. All parameters used in Enrollment flows (Android) are listed here with full detail.Public methods
The following methods are available globally via theYuno object or as Activity extensions.
Activity.hideLoader()
Dismisses the SDK loader when keepLoader is active. Use this method when a backend payment creation fails. It is also useful when you cannot proceed with continuePayment().
Yuno.continuePayment()
Resumes the payment flow for asynchronous methods (3ds, PIX, etc.) after a payment has been created on your backend.
StatusMessage (error details)
Available since Android SDK v2.22.0Every payment and enrollment result callback, and the
returnStatus of the render listeners, carries a StatusMessage? next to the state. It tells a backend rejection apart from an SDK-internal failure and gives you a code to act on, instead of a flat status string.
When it is populated:
Render integration
If you integrate through the render API, the same value reaches your listeners as the last parameter ofreturnStatus:
Migrating to 2.22.0
StatusMessage is a breaking change: the SDK does not ship deprecated overloads of the previous signatures. When you upgrade from 2.21.x or earlier:
- Recompile your app against the new SDK. Dropping the new AAR into an app built against an older version is not safe: a render listener compiled with the old
returnStatussignature crashes at runtime withAbstractMethodErroron the first error outcome, with no compile-time warning. - Add the third parameter to every
callbackPaymentStatelambda (startCheckout,startPayment,startPaymentLite,startPaymentSeamlessLite,continuePayment,continueCardPayment):{ state, subState -> }becomes{ state, subState, message -> }. Kotlin lambdas must match the arity, so the old form fails to compile. - Add the second parameter to every
callbackEnrollmentStatelambda (initEnrollment,startEnrollment,enrollmentStatus,setupEnrollmentInfo):{ state -> }becomes{ state, message -> }. - Update your
returnStatusoverrides inYunoPaymentRenderListenerandYunoEnrollmentRenderListenerto the signatures above.
message is optional: ignoring the new parameter keeps your existing logic working. Release notes: Android changelog.
Enrolling payment methods
You can enroll payment methods (store cards for future use) during the payment flow or via dedicated enrollment flows. For payment flows, enable save card inYunoConfig. Also set payment_method.vault_on_success (or equivalent) when creating the checkout session, where supported. For dedicated enrollment, see Enrollment flows (Android).
keepLoader parameter
Available since Android SDK v2.13.0
How it works
ThekeepLoader parameter allows you to persist the SDK’s loading indicator across the entire startPayment → continuePayment flow. This prevents the loader from flickering between steps.
By default, the SDK hides its loader after generating the One-Time Token (OTT). It shows the loader again when continuePayment is called. With keepLoader enabled, the loader stays visible continuously from the moment the user submits the payment form until the payment is fully processed (or explicitly dismissed).
Integration
1. Enable in YunoConfig
2. Handle OTT and call continuePayment
When keepLoader is enabled, the OTT callback fires while the loader is still visible. Create your payment on your backend and then call continuePayment as usual:
3. Handle errors with hideLoader
If your backend call fails and you cannot proceed with continuePayment, call hideLoader(). This dismisses the loader and finishes the payment flow:
Compatibility
- Works with both Full and Lite payment flows (
startPaymentandstartPaymentLite). - Compatible with vaulted tokens.
- The loader respects the SDK’s built-in timeout. If neither
continuePaymentnorhideLoaderis called, the loader will automatically dismiss after the timeout period. - Not applicable to the Seamless flow (
startPaymentSeamlessLite). This flow does not use thestartPayment→continuePaymenttwo-step pattern.