Payment methods
Every method goes through the same two calls, rememberPaymentElement and element.submit(), as in getting started. One guide per method says what differs: the artifact and project setup it needs (dependencies, repositories, manifest entries, deep links, dashboard configuration), what its element renders, what submit() does, and its failure modes.
| Method | Artifact | Project setup | Element |
|---|---|---|---|
| Card (Purse vault) | headless-checkout-android | none | Secure card form, your Pay button |
| Google Pay | headless-checkout-googlepay | none | Branded button, self-submitting |
| PayPal | headless-checkout-paypal | none | Branded button, self-submitting |
| Klarna | headless-checkout-klarna | Klarna's Maven repository, a deep link on your Activity | Native widget, your Pay button |
| Redirection methods | headless-checkout-android | none | Nothing, your Pay button; the PSP page is the step |
| Gift cards and co-payment | headless-checkout-android | none | Your own PAN and CVV fields |
| Saved cards and accounts | headless-checkout-android (+ -paypal for PayPal accounts) | A wallet session in the client session | CVV field when required, else nothing |
Pin one version for every artifact: they release together.
The session decides what is listed
Your dependencies decide what the app can render; the client session decides what is offered. A partner activated in your Purse dashboard is offered to the app whether or not its artifact is on the classpath. If it is not, the method is still listed, its element has no UI, and submit() reports PaymentOutcome.Failed with a NoPluginRegistered error whose message names the dependency to add:
no plugin registered for paypal/wallet — add the `eu.purse:headless-checkout-paypal` dependency to offer this method
The same line is logged at init. Add the artifact, or hide the method in this build, scoped to the checkout instance:
PurseHeadlessCheckout.init(widgetData, disabledMethods = setOf(MethodKey(Partner.Paypal, Method.Wallet)))
What the Android SDK renders
Cards vaulted by Purse, three native partner SDKs and every method in redirection mode. PSP-hosted card forms that live in a browser have no native counterpart. The full comparison with the web SDK is the Supported payment methods table.