{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-guides/sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":["sub-heading","tabs","tab","br","details","required","coming-soon"]},"type":"markdown"},"seo":{"title":"Implementation","description":"Transform your commerce with PXP's unified platform—seamless payments, real-time insights, and global growth in one powerful integration.","lang":"en-UK","siteUrl":"https://developer.pxp.io","llmstxt":{"hide":false,"sections":[{"title":"Table of contents","includeFiles":["**/*"],"excludeFiles":[]}],"excludeFiles":[]}},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"implementation","__idx":0},"children":["Implementation"]},{"$$mdtype":"Tag","name":"SubHeading","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Learn how to use the PayPal components in your Android project."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"overview","__idx":1},"children":["Overview"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Every component follows the same basic three-step lifecycle:"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Create the component and optionally add your own configuration."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Render the component using Jetpack Compose. This is what makes the component visible and interactive."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Dispose the component. This is a clean-up step that clears up resources and is handled automatically by Compose."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"before-you-start","__idx":2},"children":["Before you start"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["To use the PayPal components, you first need to:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/guides/checkout/components/android/install"},"children":["Install Components for Android"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Complete the ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/guides/checkout/components/android/paypal/onboarding"},"children":["PayPal onboarding"]}," process in the Unity Portal."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Configure your ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["gradle.properties"]}," with the required environment variables."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"choose-your-implementation-approach","__idx":3},"children":["Choose your implementation approach"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Android offers three ways to implement PayPal payments, depending on your requirements:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Simple PayPal:"]}," Use this approach when you need basic PayPal payments without one-click or vaulting features. Ideal for guest checkout, simple payments, and digital products."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Pre-built PayPal"]}," Use the pre-configured composite component that includes the basic PayPal component and the toggle component for one-click payments. This approach offers a quick integration path with built-in vaulting support."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Custom composition"]}," Manually compose the PayPal, toggle, and consent components for maximum control over layout and behaviour. This approach gives you the most flexibility for custom UX requirements."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The component lifecycle is automatically managed by Jetpack Compose across all three approaches. However, you can manually dispose of resources if needed:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"kotlin","header":{"controls":{"copy":{}}},"source":"DisposableEffect(paypalComponent) {\n    onDispose {\n        // Component resources are automatically cleaned up\n        Log.d(\"PayPal\", \"Component disposed\")\n    }\n}\n","lang":"kotlin"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"implement-paypal-payments","__idx":4},"children":["Implement PayPal payments"]},{"$$mdtype":"Tag","name":"Tabs","attributes":{"size":"medium"},"children":[{"$$mdtype":"Tag","name":"TabItemFragment","attributes":{"label":"Simple","disable":false},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"step-1-initialise-the-sdk","__idx":5},"children":["Step 1: Initialise the SDK"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["To get started, initialise the Checkout SDK in your Android application."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"kotlin","header":{"controls":{"copy":{}}},"source":"import com.pxp.checkout.PxpCheckout\nimport com.pxp.checkout.models.PxpCheckoutConfig\nimport com.pxp.checkout.models.Environment\nimport com.pxp.checkout.models.OwnerType\nimport com.pxp.checkout.models.TransactionData\nimport com.pxp.checkout.models.EntryType\nimport com.pxp.checkout.models.IntentType\nimport java.util.UUID\n\nval pxpCheckout = PxpCheckout.builder()\n    .withConfig(\n        PxpCheckoutConfig(\n            environment = Environment.TEST,\n            session = sessionData,\n            ownerId = \"Unity\",\n            ownerType = OwnerType.MERCHANT_GROUP,\n            merchantShopperId = \"Shopper_01\",\n            transactionData = TransactionData(\n                currency = \"USD\",\n                amount = 2500.0, // Amount in cents ($25.00)\n                entryType = EntryType.Ecom,\n                intent = IntentType.Purchase,\n                merchantTransactionId = UUID.randomUUID().toString(),\n                merchantTransactionDate = { System.currentTimeMillis() }\n            )\n        )\n    )\n    .withContext(context)\n    .build()\n","lang":"kotlin"},"children":[]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Parameter"},"children":["Parameter"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["environment"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Environment"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Required","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The environment type.",{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},"Possible values:",{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Environment.TEST"]},": For sandbox."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Environment.LIVE"]},": For production."]}]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["session"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["SessionData"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Required","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Details about the checkout session."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ownerId"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Required","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The identifier of the owner related to the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ownerType"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ownerType"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["OwnerType"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Required","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The type of owner.",{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},"Possible values:",{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["OwnerType.MERCHANT_GROUP"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["OwnerType.MERCHANT"]}," ",{"$$mdtype":"Tag","name":"ComingSoon","attributes":{"noSpace":false},"children":[]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["OwnerType.SITE"]}," ",{"$$mdtype":"Tag","name":"ComingSoon","attributes":{"noSpace":false},"children":[]}]}]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["merchantShopperId"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Required","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["A unique identifier for this shopper."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transactionData"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["TransactionData"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Required","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Details about the transaction."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transactionData.currency"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The currency code associated with the transaction (e.g., ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["USD"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["EUR"]},")."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transactionData.amount"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Double"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Required","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The transaction amount in the smallest currency unit (e.g., cents for USD)."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transactionData.entryType"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["EntryType"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Required","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The entry type.",{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},"Possible values:",{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["EntryType.Ecom"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["EntryType.MOTO"]}]}]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transactionData.intent"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["IntentType"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Required","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The transaction intent.",{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},"Possible values:",{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["IntentType.Authorisation"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["IntentType.Purchase"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["IntentType.Verification"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["IntentType.EstimatedAuthorisation"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["IntentType.Payout"]}]}]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transactionData.merchantTransactionId"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Required","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["A unique identifier for this transaction."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transactionData.merchantTransactionDate"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["() -> Long"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Required","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["A function that returns the current timestamp in milliseconds."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"step-2-configure-the-component","__idx":6},"children":["Step 2: Configure the component"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Create the PayPal component configuration with basic settings:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"kotlin","header":{"controls":{"copy":{}}},"source":"import com.pxp.checkout.components.paypal.PayPalComponentConfig\nimport com.pxp.checkout.components.paypal.types.*\n\nval paypalConfig = PayPalComponentConfig(\n    payeeEmailAddress = \"merchant@example.com\",\n    paymentDescription = \"Order #12345\",\n    shippingPreference = ShippingPreference.NoShipping.toString(),\n    userAction = UserAction.PayNow.toString(),\n    renderType = \"standalone\",\n    fundingSources = \"paypal\", // String for standalone mode\n    enableOneClickPayment = false // No vaulting\n)\n","lang":"kotlin"},"children":[]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Parameter"},"children":["Parameter"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["payeeEmailAddress"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Your email address."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["paymentDescription"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["A description of the payment."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["shippingPreference"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Required","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The shipping details to use.",{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},"Possible values:",{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["NoShipping"]},": No shipping address required."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["GetFromFile"]},": Get shipping address from PayPal account."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SetProvidedAddress"]},": Use provided shipping address."]}]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["userAction"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Required","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The next step in the payment flow.",{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},"Possible values:",{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PayNow"]},": Immediate payment capture."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Continue"]},": Continue to PayPal for payment."]}]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["renderType"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Required","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The type of button to render.",{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},"Possible values:",{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["standalone"]},": A single button. Choose this when there is only one payment method."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["setOfButtons"]},": Multiple buttons. Choose this when there are multiple payment methods."]}]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["fundingSources"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Any?"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Required","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The payment method(s) to support. The type depends on the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["renderType"]},":",{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["String"]}," for ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["standalone"]}," mode (e.g., ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["paypal"]},")"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["List&lt;String&gt;"]}," for ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["setOfButtons"]}," mode (e.g., ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["listOf(\"paypal\", \"paylater\")"]},")"]}]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},"Possible values:",{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["paypal"]},": Standard PayPal payments."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["paylater"]},": PayPal Pay Later financing."]}]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["shippingAddress"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["ShippingAddress?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Details about the shipping address. Provide this only when the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["shippingPreference"]}," is ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SetProvidedAddress"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["shippingOptions"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["List<ShippingOption>?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Details about the shipping options. Provide this only when the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["shippingPreference"]}," is ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["GetFromFile"]},"."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"step-3-create-and-render-the-component","__idx":7},"children":["Step 3: Create and render the component"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Create and render the component using Jetpack Compose:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"kotlin","header":{"controls":{"copy":{}}},"source":"import androidx.compose.foundation.layout.fillMaxWidth\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.remember\nimport androidx.compose.ui.Modifier\nimport com.pxp.checkout.types.ComponentType\n\n@Composable\nfun PayPalPaymentScreen() {\n    val paypalComponent = remember {\n        pxpCheckout.createComponent(\n            type = ComponentType.PAYPAL,\n            config = paypalConfig\n        )\n    }\n    \n    // Render the PayPal button\n    pxpCheckout.buildComponentView(\n        component = paypalComponent,\n        modifier = Modifier.fillMaxWidth()\n    )\n}\n","lang":"kotlin"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"step-4-handle-the-payment-result","__idx":8},"children":["Step 4: Handle the payment result"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Implement event handling callbacks to manage payment outcomes:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"kotlin","header":{"controls":{"copy":{}}},"source":"val paypalConfig = PayPalComponentConfig(\n    // ... previous config\n    onSuccess = { data ->\n        // Payment was successful\n        Log.d(\"PayPal\", \"Payment successful: $data\")\n        \n        // Parse the payment data\n        val jsonObject = JSONObject(data)\n        val orderID = jsonObject.getString(\"orderID\")\n        val payerID = jsonObject.getString(\"payerID\")\n        \n        // Navigate to success screen or update UI\n        navigateToSuccessScreen(orderID)\n    },\n    \n    onError = { error ->\n        // Payment failed\n        Log.e(\"PayPal\", \"Payment error: $error\")\n        \n        // Show error message to user\n        showErrorDialog(\"Payment failed. Please try again.\")\n    },\n    \n    onCancel = {\n        // User cancelled the payment\n        Log.d(\"PayPal\", \"Payment cancelled by user\")\n        \n        // Show cancellation message\n        showMessage(\"Payment was cancelled.\")\n    }\n)\n","lang":"kotlin"},"children":[]}]},{"$$mdtype":"Tag","name":"TabItemFragment","attributes":{"label":"Pre-built","disable":false},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"step-1-initialise-the-sdk-1","__idx":9},"children":["Step 1: Initialise the SDK"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["To get started, initialise the Checkout SDK in your Android application."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"kotlin","header":{"controls":{"copy":{}}},"source":"import com.pxp.checkout.PxpCheckout\nimport com.pxp.checkout.models.PxpCheckoutConfig\nimport com.pxp.checkout.models.Environment\nimport com.pxp.checkout.models.OwnerType\nimport com.pxp.checkout.models.TransactionData\nimport com.pxp.checkout.models.EntryType\nimport com.pxp.checkout.models.IntentType\nimport java.util.UUID\n\nval pxpCheckout = PxpCheckout.builder()\n    .withConfig(\n        PxpCheckoutConfig(\n            environment = Environment.TEST,\n            session = sessionData,\n            ownerId = \"Unity\",\n            ownerType = OwnerType.MERCHANT_GROUP,\n            merchantShopperId = \"Shopper_01\",\n            transactionData = TransactionData(\n                currency = \"USD\",\n                amount = 2500.0, // Amount in cents ($25.00)\n                entryType = EntryType.Ecom,\n                intent = IntentType.Purchase,\n                merchantTransactionId = UUID.randomUUID().toString(),\n                merchantTransactionDate = { System.currentTimeMillis() }\n            )\n        )\n    )\n    .withContext(context)\n    .build()\n","lang":"kotlin"},"children":[]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Parameter"},"children":["Parameter"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["environment"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Environment"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Required","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The environment type.",{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},"Possible values:",{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Environment.TEST"]},": For sandbox."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Environment.LIVE"]},": For production."]}]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["session"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["SessionData"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Required","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Details about the checkout session."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ownerId"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Required","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The identifier of the owner related to the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ownerType"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ownerType"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["OwnerType"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Required","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The type of owner.",{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},"Possible values:",{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["OwnerType.MERCHANT_GROUP"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["OwnerType.MERCHANT"]}," ",{"$$mdtype":"Tag","name":"ComingSoon","attributes":{"noSpace":false},"children":[]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["OwnerType.SITE"]}," ",{"$$mdtype":"Tag","name":"ComingSoon","attributes":{"noSpace":false},"children":[]}]}]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["merchantShopperId"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Required","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["A unique identifier for this shopper."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transactionData"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["TransactionData"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Required","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Details about the transaction."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transactionData.currency"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The currency code associated with the transaction (e.g., ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["USD"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["EUR"]},")."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transactionData.amount"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Double"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Required","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The transaction amount in the smallest currency unit (e.g., cents for USD)."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transactionData.entryType"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["EntryType"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Required","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The entry type.",{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},"Possible values:",{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["EntryType.Ecom"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["EntryType.MOTO"]}]}]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transactionData.intent"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["IntentType"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Required","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The transaction intent.",{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},"Possible values:",{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["IntentType.Authorisation"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["IntentType.Purchase"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["IntentType.Verification"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["IntentType.EstimatedAuthorisation"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["IntentType.Payout"]}]}]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transactionData.merchantTransactionId"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Required","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["A unique identifier for this transaction."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transactionData.merchantTransactionDate"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["() -> Long"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Required","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["A function that returns the current timestamp in milliseconds."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"step-2-configuration","__idx":10},"children":["Step 2: Configuration"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Create the PreBuilt PayPal component configuration:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"kotlin","header":{"controls":{"copy":{}}},"source":"import com.pxp.checkout.components.prebuiltpaypal.PreBuiltPayPalComponentConfig\nimport com.pxp.checkout.components.paypal.PayPalComponentConfig\nimport com.pxp.checkout.components.toggle.ToggleComponentConfig\n\nval prebuiltConfig = PreBuiltPayPalComponentConfig(\n    paypalConfig = PayPalComponentConfig(\n        payeeEmailAddress = \"merchant@example.com\",\n        paymentDescription = \"Order #12345\",\n        shippingPreference = \"NoShipping\",\n        userAction = \"PayNow\",\n        renderType = \"standalone\",\n        fundingSources = \"paypal\",\n        enableOneClickPayment = true, // Enable vaulting\n        scriptParams = PayPalScriptParams(\n            userIdToken = getUserIdToken() // From vault status check\n        )\n    ),\n    toggleConfig = ToggleComponentConfig(\n        label = \"Change payment method\",\n        initialChecked = false\n    )\n)\n","lang":"kotlin"},"children":[]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Parameter"},"children":["Parameter"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["paypalConfig"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["PayPalComponentConfig"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Required","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Configuration for the PayPal component (same parameters as Simple PayPal approach)."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["toggleConfig"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["ToggleComponentConfig"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Required","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Configuration for the toggle component."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["paypalConfig.enableOneClickPayment"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Boolean"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Set to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["true"]}," to enable vaulting and one-click payments."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["paypalConfig.scriptParams.userIdToken"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The user ID token from your vault status check."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"step-3-create-and-render-the-component-1","__idx":11},"children":["Step 3: Create and render the component"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The PreBuilt component handles all sub-components automatically:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"kotlin","header":{"controls":{"copy":{}}},"source":"import androidx.compose.foundation.layout.fillMaxWidth\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.remember\nimport androidx.compose.ui.Modifier\nimport com.pxp.checkout.types.ComponentType\n\n@Composable\nfun PreBuiltPayPalScreen() {\n    val prebuiltComponent = remember {\n        pxpCheckout.createComponent(\n            type = ComponentType.PREBUILT_PAYPAL,\n            config = prebuiltConfig\n        )\n    }\n    \n    // Pre-built component handles all sub-components automatically\n    pxpCheckout.buildComponentView(\n        component = prebuiltComponent,\n        modifier = Modifier.fillMaxWidth()\n    )\n}\n","lang":"kotlin"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"step-4-handle-the-payment-result-1","__idx":12},"children":["Step 4: Handle the payment result"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Implement event handling for the PayPal component within the configuration:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"kotlin","header":{"controls":{"copy":{}}},"source":"val prebuiltConfig = PreBuiltPayPalComponentConfig(\n    paypalConfig = PayPalComponentConfig(\n        // ... previous config\n        onSuccess = { data ->\n            Log.d(\"PayPal\", \"Payment successful: $data\")\n            val jsonObject = JSONObject(data)\n            val orderID = jsonObject.getString(\"orderID\")\n            navigateToSuccessScreen(orderID)\n        },\n        onError = { error ->\n            Log.e(\"PayPal\", \"Payment error: $error\")\n            showErrorDialog(\"Payment failed. Please try again.\")\n        },\n        onCancel = {\n            Log.d(\"PayPal\", \"Payment cancelled by user\")\n            showMessage(\"Payment was cancelled.\")\n        }\n    ),\n    toggleConfig = ToggleComponentConfig(\n        label = \"Change payment method\",\n        initialChecked = false\n    )\n)\n","lang":"kotlin"},"children":[]}]},{"$$mdtype":"Tag","name":"TabItemFragment","attributes":{"label":"Custom","disable":false},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"step-1-initialise-the-sdk-2","__idx":13},"children":["Step 1: Initialise the SDK"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["To get started, initialise the Checkout SDK in your Android application."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"kotlin","header":{"controls":{"copy":{}}},"source":"import com.pxp.checkout.PxpCheckout\nimport com.pxp.checkout.models.PxpCheckoutConfig\nimport com.pxp.checkout.models.Environment\nimport com.pxp.checkout.models.OwnerType\nimport com.pxp.checkout.models.TransactionData\nimport com.pxp.checkout.models.EntryType\nimport com.pxp.checkout.models.IntentType\nimport java.util.UUID\n\nval pxpCheckout = PxpCheckout.builder()\n    .withConfig(\n        PxpCheckoutConfig(\n            environment = Environment.TEST,\n            session = sessionData,\n            ownerId = \"Unity\",\n            ownerType = OwnerType.MERCHANT_GROUP,\n            merchantShopperId = \"Shopper_01\",\n            transactionData = TransactionData(\n                currency = \"USD\",\n                amount = 2500.0, // Amount in cents ($25.00)\n                entryType = EntryType.Ecom,\n                intent = IntentType.Purchase,\n                merchantTransactionId = UUID.randomUUID().toString(),\n                merchantTransactionDate = { System.currentTimeMillis() }\n            )\n        )\n    )\n    .withContext(context)\n    .build()\n","lang":"kotlin"},"children":[]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Parameter"},"children":["Parameter"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["environment"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Environment"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Required","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The environment type.",{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},"Possible values:",{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Environment.TEST"]},": For sandbox."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Environment.LIVE"]},": For production."]}]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["session"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["SessionData"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Required","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Details about the checkout session."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ownerId"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Required","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The identifier of the owner related to the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ownerType"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ownerType"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["OwnerType"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Required","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The type of owner.",{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},"Possible values:",{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["OwnerType.MERCHANT_GROUP"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["OwnerType.MERCHANT"]}," ",{"$$mdtype":"Tag","name":"ComingSoon","attributes":{"noSpace":false},"children":[]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["OwnerType.SITE"]}," ",{"$$mdtype":"Tag","name":"ComingSoon","attributes":{"noSpace":false},"children":[]}]}]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["merchantShopperId"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Required","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["A unique identifier for this shopper."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transactionData"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["TransactionData"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Required","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Details about the transaction."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transactionData.currency"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The currency code associated with the transaction (e.g., ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["\"USD\""]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["\"EUR\""]},")."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transactionData.amount"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Double"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Required","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The transaction amount in the smallest currency unit (e.g., cents for USD)."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transactionData.entryType"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["EntryType"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Required","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The entry type.",{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},"Possible values:",{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["EntryType.Ecom"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["EntryType.MOTO"]}]}]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transactionData.intent"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["IntentType"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Required","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The transaction intent.",{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},"Possible values:",{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["IntentType.Authorisation"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["IntentType.Purchase"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["IntentType.Verification"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["IntentType.EstimatedAuthorisation"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["IntentType.Payout"]}]}]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transactionData.merchantTransactionId"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Required","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["A unique identifier for this transaction."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transactionData.merchantTransactionDate"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["() -> Long"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Required","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["A function that returns the current timestamp in milliseconds."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"step-2-configuration-1","__idx":14},"children":["Step 2: Configuration"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Create individual components and link them together:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"kotlin","header":{"controls":{"copy":{}}},"source":"import com.pxp.checkout.components.paypal.PayPalComponentConfig\nimport com.pxp.checkout.components.paypalconsent.PayPalConsentConfig\nimport com.pxp.checkout.components.toggle.ToggleComponentConfig\n\n// Create consent component\nval consentComponent = pxpCheckout.createComponent(\n    type = ComponentType.PAYPAL_CONSENT,\n    config = PayPalConsentConfig(\n        label = \"Save my PayPal account for faster checkout\",\n        initialChecked = false\n    )\n)\n\n// Create toggle component\nval toggleComponent = pxpCheckout.createComponent(\n    type = ComponentType.TOGGLE,\n    config = ToggleComponentConfig(\n        label = \"Use different PayPal account\",\n        initialChecked = false\n    )\n)\n\n// Create PayPal component with linked components\nval paypalConfig = PayPalComponentConfig(\n    payeeEmailAddress = \"merchant@example.com\",\n    paymentDescription = \"Order #12345\",\n    shippingPreference = \"NoShipping\",\n    userAction = \"PayNow\",\n    renderType = \"standalone\",\n    fundingSources = \"paypal\",\n    enableOneClickPayment = true,\n    scriptParams = PayPalScriptParams(\n        userIdToken = getUserIdToken()\n    ),\n    // Link the components\n    consentComponent = consentComponent,\n    toggleComponent = toggleComponent,\n    // Handle consent retrieval\n    onGetConsent = {\n        consentComponent.getValue() as? Boolean ?: false\n    }\n)\n","lang":"kotlin"},"children":[]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Parameter"},"children":["Parameter"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["consentComponent"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Component?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The consent component instance to link to the PayPal component."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["toggleComponent"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Component?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The toggle component instance to link to the PayPal component."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onGetConsent"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["() -> Boolean"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Callback function to retrieve the consent state from the consent component."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"step-3-create-and-render-the-component-2","__idx":15},"children":["Step 3: Create and render the component"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Compose the components in your desired layout:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"kotlin","header":{"controls":{"copy":{}}},"source":"import androidx.compose.foundation.layout.*\nimport androidx.compose.runtime.Composable\nimport androidx.compose.runtime.remember\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.unit.dp\nimport com.pxp.checkout.types.ComponentType\n\n@Composable\nfun CustomPayPalScreen() {\n    // Create consent component\n    val consentComponent = remember {\n        pxpCheckout.createComponent(\n            type = ComponentType.PAYPAL_CONSENT,\n            config = PayPalConsentConfig(\n                label = \"Save my PayPal account for faster checkout\",\n                initialChecked = false\n            )\n        )\n    }\n    \n    // Create toggle component\n    val toggleComponent = remember {\n        pxpCheckout.createComponent(\n            type = ComponentType.TOGGLE,\n            config = ToggleComponentConfig(\n                label = \"Use different PayPal account\",\n                initialChecked = false\n            )\n        )\n    }\n    \n    // Create PayPal component with linked components\n    val paypalComponent = remember {\n        pxpCheckout.createComponent(\n            type = ComponentType.PAYPAL,\n            config = PayPalComponentConfig(\n                // ... configuration with linked components\n                consentComponent = consentComponent,\n                toggleComponent = toggleComponent,\n                onGetConsent = {\n                    consentComponent.getValue() as? Boolean ?: false\n                }\n            )\n        )\n    }\n    \n    Column(\n        modifier = Modifier.fillMaxWidth(),\n        verticalArrangement = Arrangement.spacedBy(16.dp)\n    ) {\n        // Toggle at the top\n        pxpCheckout.buildComponentView(\n            component = toggleComponent,\n            modifier = Modifier.fillMaxWidth()\n        )\n        \n        // PayPal button in the middle\n        pxpCheckout.buildComponentView(\n            component = paypalComponent,\n            modifier = Modifier.fillMaxWidth()\n        )\n        \n        // Consent at the bottom\n        pxpCheckout.buildComponentView(\n            component = consentComponent,\n            modifier = Modifier.fillMaxWidth()\n        )\n    }\n}\n","lang":"kotlin"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"step-4-handle-the-payment-result-2","__idx":16},"children":["Step 4: Handle the payment result"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Implement event handling and manage component interactions:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"kotlin","header":{"controls":{"copy":{}}},"source":"val paypalConfig = PayPalComponentConfig(\n    // ... previous config\n    onSuccess = { data ->\n        Log.d(\"PayPal\", \"Payment successful: $data\")\n        \n        // Check if user consented to save their account\n        val consentGiven = consentComponent.getValue() as? Boolean ?: false\n        if (consentGiven) {\n            Log.d(\"PayPal\", \"User consented to save PayPal account\")\n            // Save vaulting preference\n        }\n        \n        val jsonObject = JSONObject(data)\n        val orderID = jsonObject.getString(\"orderID\")\n        navigateToSuccessScreen(orderID)\n    },\n    onError = { error ->\n        Log.e(\"PayPal\", \"Payment error: $error\")\n        showErrorDialog(\"Payment failed. Please try again.\")\n    },\n    onCancel = {\n        Log.d(\"PayPal\", \"Payment cancelled by user\")\n        showMessage(\"Payment was cancelled.\")\n    }\n)\n","lang":"kotlin"},"children":[]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"complete-examples","__idx":17},"children":["Complete examples"]},{"$$mdtype":"Tag","name":"Tabs","attributes":{"size":"medium"},"children":[{"$$mdtype":"Tag","name":"TabItemFragment","attributes":{"label":"Simple","disable":false},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Here's a complete working example with the PayPal component:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"kotlin","header":{"controls":{"copy":{}}},"source":"import android.os.Bundle\nimport androidx.activity.ComponentActivity\nimport androidx.activity.compose.setContent\nimport androidx.compose.foundation.layout.*\nimport androidx.compose.material3.*\nimport androidx.compose.runtime.*\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.unit.dp\nimport com.pxp.checkout.PxpCheckout\nimport com.pxp.checkout.components.paypal.PayPalComponentConfig\nimport com.pxp.checkout.components.paypal.types.*\nimport com.pxp.checkout.types.ComponentType\nimport org.json.JSONObject\n\nclass SimplePayPalActivity : ComponentActivity() {\n    \n    private lateinit var pxpCheckout: PxpCheckout\n    \n    override fun onCreate(savedInstanceState: Bundle?) {\n        super.onCreate(savedInstanceState)\n        \n        // Initialise SDK\n        pxpCheckout = PxpCheckout.builder()\n            .withConfig(sdkConfig)\n            .withContext(this)\n            .build()\n        \n        setContent {\n            MaterialTheme {\n                SimplePayPalScreen()\n            }\n        }\n    }\n    \n    @Composable\n    fun SimplePayPalScreen() {\n        var paymentStatus by remember { mutableStateOf<String?>(null) }\n        var showSuccessDialog by remember { mutableStateOf(false) }\n        var showErrorDialog by remember { mutableStateOf(false) }\n        \n        val paypalConfig = remember {\n            PayPalComponentConfig(\n                renderType = \"standalone\",\n                payeeEmailAddress = \"merchant@example.com\",\n                paymentDescription = \"Order #12345\",\n                shippingPreference = \"NoShipping\",\n                userAction = \"PayNow\",\n                fundingSources = \"paypal\",\n                enableOneClickPayment = false,\n                style = PayPalButtonStyle(\n                    layout = \"vertical\",\n                    color = \"gold\",\n                    shape = \"rect\",\n                    label = \"paypal\",\n                    height = 45\n                ),\n                onSuccess = { data ->\n                    val jsonObject = JSONObject(data)\n                    val orderID = jsonObject.getString(\"orderID\")\n                    paymentStatus = \"Payment successful! Order ID: $orderID\"\n                    showSuccessDialog = true\n                },\n                onError = { error ->\n                    paymentStatus = \"Payment failed: $error\"\n                    showErrorDialog = true\n                },\n                onCancel = {\n                    paymentStatus = \"Payment was cancelled\"\n                }\n            )\n        }\n        \n        val paypalComponent = remember {\n            pxpCheckout.createComponent(\n                type = ComponentType.PAYPAL,\n                config = paypalConfig\n            )\n        }\n        \n        Surface(\n            modifier = Modifier.fillMaxSize(),\n            color = MaterialTheme.colorScheme.background\n        ) {\n            Column(\n                modifier = Modifier\n                    .fillMaxSize()\n                    .padding(16.dp),\n                verticalArrangement = Arrangement.spacedBy(16.dp)\n            ) {\n                Text(\n                    text = \"Complete your payment\",\n                    style = MaterialTheme.typography.headlineMedium\n                )\n                \n                Text(\n                    text = \"Amount: $25.00\",\n                    style = MaterialTheme.typography.titleMedium\n                )\n                \n                // PayPal button\n                pxpCheckout.buildComponentView(\n                    component = paypalComponent,\n                    modifier = Modifier.fillMaxWidth()\n                )\n                \n                // Status message\n                paymentStatus?.let { status ->\n                    Text(\n                        text = status,\n                        style = MaterialTheme.typography.bodyMedium\n                    )\n                }\n            }\n        }\n        \n        // Success dialog\n        if (showSuccessDialog) {\n            AlertDialog(\n                onDismissRequest = { showSuccessDialog = false },\n                title = { Text(\"Payment Successful\") },\n                text = { Text(paymentStatus ?: \"\") },\n                confirmButton = {\n                    Button(onClick = { \n                        showSuccessDialog = false\n                        finish()\n                    }) {\n                        Text(\"OK\")\n                    }\n                }\n            )\n        }\n        \n        // Error dialog\n        if (showErrorDialog) {\n            AlertDialog(\n                onDismissRequest = { showErrorDialog = false },\n                title = { Text(\"Payment Error\") },\n                text = { Text(paymentStatus ?: \"\") },\n                confirmButton = {\n                    Button(onClick = { showErrorDialog = false }) {\n                        Text(\"OK\")\n                    }\n                }\n            )\n        }\n    }\n}\n","lang":"kotlin"},"children":[]}]},{"$$mdtype":"Tag","name":"TabItemFragment","attributes":{"label":"Pre-built","disable":false},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Here's a complete working example with one-click payment support:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"kotlin","header":{"controls":{"copy":{}}},"source":"import android.os.Bundle\nimport androidx.activity.ComponentActivity\nimport androidx.activity.compose.setContent\nimport androidx.compose.foundation.layout.*\nimport androidx.compose.material3.*\nimport androidx.compose.runtime.*\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.unit.dp\nimport com.pxp.checkout.PxpCheckout\nimport com.pxp.checkout.components.prebuiltpaypal.PreBuiltPayPalComponentConfig\nimport com.pxp.checkout.components.paypal.PayPalComponentConfig\nimport com.pxp.checkout.components.toggle.ToggleComponentConfig\nimport com.pxp.checkout.types.ComponentType\nimport org.json.JSONObject\n\nclass PreBuiltPayPalActivity : ComponentActivity() {\n    \n    private lateinit var pxpCheckout: PxpCheckout\n    \n    override fun onCreate(savedInstanceState: Bundle?) {\n        super.onCreate(savedInstanceState)\n        \n        // Initialise SDK\n        pxpCheckout = PxpCheckout.builder()\n            .withConfig(sdkConfig)\n            .withContext(this)\n            .build()\n        \n        setContent {\n            MaterialTheme {\n                PreBuiltPayPalScreen()\n            }\n        }\n    }\n    \n    @Composable\n    fun PreBuiltPayPalScreen() {\n        var paymentStatus by remember { mutableStateOf<String?>(null) }\n        var showSuccessDialog by remember { mutableStateOf(false) }\n        \n        val prebuiltConfig = remember {\n            PreBuiltPayPalComponentConfig(\n                paypalConfig = PayPalComponentConfig(\n                    renderType = \"standalone\",\n                    payeeEmailAddress = \"merchant@example.com\",\n                    paymentDescription = \"Order #12345\",\n                    shippingPreference = \"NoShipping\",\n                    userAction = \"PayNow\",\n                    fundingSources = \"paypal\",\n                    enableOneClickPayment = true,\n                    scriptParams = PayPalScriptParams(\n                        userIdToken = getUserIdToken()\n                    ),\n                    style = PayPalButtonStyle(\n                        layout = \"vertical\",\n                        color = \"blue\",\n                        shape = \"pill\",\n                        label = \"buynow\",\n                        height = 45\n                    ),\n                    onSuccess = { data ->\n                        val jsonObject = JSONObject(data)\n                        val orderID = jsonObject.getString(\"orderID\")\n                        paymentStatus = \"Payment successful! Order ID: $orderID\"\n                        showSuccessDialog = true\n                    },\n                    onError = { error ->\n                        paymentStatus = \"Payment failed: $error\"\n                    },\n                    onCancel = {\n                        paymentStatus = \"Payment was cancelled\"\n                    }\n                ),\n                toggleConfig = ToggleComponentConfig(\n                    label = \"Change payment method\",\n                    initialChecked = false\n                )\n            )\n        }\n        \n        val prebuiltComponent = remember {\n            pxpCheckout.createComponent(\n                type = ComponentType.PREBUILT_PAYPAL,\n                config = prebuiltConfig\n            )\n        }\n        \n        Surface(\n            modifier = Modifier.fillMaxSize(),\n            color = MaterialTheme.colorScheme.background\n        ) {\n            Column(\n                modifier = Modifier\n                    .fillMaxSize()\n                    .padding(16.dp),\n                verticalArrangement = Arrangement.spacedBy(16.dp)\n            ) {\n                Text(\n                    text = \"Complete your payment\",\n                    style = MaterialTheme.typography.headlineMedium\n                )\n                \n                Text(\n                    text = \"Amount: $25.00\",\n                    style = MaterialTheme.typography.titleMedium\n                )\n                \n                Text(\n                    text = \"One-click payment enabled\",\n                    style = MaterialTheme.typography.bodySmall,\n                    color = MaterialTheme.colorScheme.primary\n                )\n                \n                // Pre-built PayPal component\n                pxpCheckout.buildComponentView(\n                    component = prebuiltComponent,\n                    modifier = Modifier.fillMaxWidth()\n                )\n                \n                // Status message\n                paymentStatus?.let { status ->\n                    Text(\n                        text = status,\n                        style = MaterialTheme.typography.bodyMedium\n                    )\n                }\n            }\n        }\n        \n        // Success dialog\n        if (showSuccessDialog) {\n            AlertDialog(\n                onDismissRequest = { showSuccessDialog = false },\n                title = { Text(\"Payment Successful\") },\n                text = { Text(paymentStatus ?: \"\") },\n                confirmButton = {\n                    Button(onClick = { \n                        showSuccessDialog = false\n                        finish()\n                    }) {\n                        Text(\"OK\")\n                    }\n                }\n            )\n        }\n    }\n    \n    private fun getUserIdToken(): String? {\n        // Check vault status and return user ID token if available\n        // This would typically come from your backend or vault service\n        return null // Return actual token when user has vaulted account\n    }\n}\n","lang":"kotlin"},"children":[]}]},{"$$mdtype":"Tag","name":"TabItemFragment","attributes":{"label":"Custom","disable":false},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Here's a complete working example with custom component composition:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"kotlin","header":{"controls":{"copy":{}}},"source":"import android.os.Bundle\nimport androidx.activity.ComponentActivity\nimport androidx.activity.compose.setContent\nimport androidx.compose.foundation.layout.*\nimport androidx.compose.material3.*\nimport androidx.compose.runtime.*\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.unit.dp\nimport com.pxp.checkout.PxpCheckout\nimport com.pxp.checkout.components.paypal.PayPalComponentConfig\nimport com.pxp.checkout.components.paypalconsent.PayPalConsentConfig\nimport com.pxp.checkout.components.toggle.ToggleComponentConfig\nimport com.pxp.checkout.types.ComponentType\nimport org.json.JSONObject\n\nclass CustomCompositionActivity : ComponentActivity() {\n    \n    private lateinit var pxpCheckout: PxpCheckout\n    \n    override fun onCreate(savedInstanceState: Bundle?) {\n        super.onCreate(savedInstanceState)\n        \n        // Initialise SDK\n        pxpCheckout = PxpCheckout.builder()\n            .withConfig(sdkConfig)\n            .withContext(this)\n            .build()\n        \n        setContent {\n            MaterialTheme {\n                CustomPayPalScreen()\n            }\n        }\n    }\n    \n    @Composable\n    fun CustomPayPalScreen() {\n        var paymentStatus by remember { mutableStateOf<String?>(null) }\n        var showSuccessDialog by remember { mutableStateOf(false) }\n        \n        // Create consent component\n        val consentComponent = remember {\n            pxpCheckout.createComponent(\n                type = ComponentType.PAYPAL_CONSENT,\n                config = PayPalConsentConfig(\n                    label = \"Save my PayPal account for faster checkout\",\n                    initialChecked = false\n                )\n            )\n        }\n        \n        // Create toggle component\n        val toggleComponent = remember {\n            pxpCheckout.createComponent(\n                type = ComponentType.TOGGLE,\n                config = ToggleComponentConfig(\n                    label = \"Use different PayPal account\",\n                    initialChecked = false\n                )\n            )\n        }\n        \n        // Create PayPal component with linked components\n        val paypalComponent = remember {\n            pxpCheckout.createComponent(\n                type = ComponentType.PAYPAL,\n                config = PayPalComponentConfig(\n                    renderType = \"standalone\",\n                    payeeEmailAddress = \"merchant@example.com\",\n                    paymentDescription = \"Order #12345\",\n                    shippingPreference = \"NoShipping\",\n                    userAction = \"PayNow\",\n                    fundingSources = \"paypal\",\n                    enableOneClickPayment = true,\n                    scriptParams = PayPalScriptParams(\n                        userIdToken = getUserIdToken()\n                    ),\n                    style = PayPalButtonStyle(\n                        layout = \"vertical\",\n                        color = \"gold\",\n                        shape = \"rect\",\n                        label = \"checkout\",\n                        height = 45\n                    ),\n                    consentComponent = consentComponent,\n                    toggleComponent = toggleComponent,\n                    onGetConsent = {\n                        consentComponent.getValue() as? Boolean ?: false\n                    },\n                    onSuccess = { data ->\n                        val jsonObject = JSONObject(data)\n                        val orderID = jsonObject.getString(\"orderID\")\n                        \n                        val consentGiven = consentComponent.getValue() as? Boolean ?: false\n                        paymentStatus = if (consentGiven) {\n                            \"Payment successful! Order ID: $orderID (Account saved)\"\n                        } else {\n                            \"Payment successful! Order ID: $orderID\"\n                        }\n                        showSuccessDialog = true\n                    },\n                    onError = { error ->\n                        paymentStatus = \"Payment failed: $error\"\n                    },\n                    onCancel = {\n                        paymentStatus = \"Payment was cancelled\"\n                    }\n                )\n            )\n        }\n        \n        Surface(\n            modifier = Modifier.fillMaxSize(),\n            color = MaterialTheme.colorScheme.background\n        ) {\n            Column(\n                modifier = Modifier\n                    .fillMaxSize()\n                    .padding(16.dp),\n                verticalArrangement = Arrangement.spacedBy(16.dp)\n            ) {\n                Text(\n                    text = \"Complete your payment\",\n                    style = MaterialTheme.typography.headlineMedium\n                )\n                \n                Text(\n                    text = \"Amount: $25.00\",\n                    style = MaterialTheme.typography.titleMedium\n                )\n                \n                Card(\n                    modifier = Modifier.fillMaxWidth(),\n                    colors = CardDefaults.cardColors(\n                        containerColor = MaterialTheme.colorScheme.surfaceVariant\n                    )\n                ) {\n                    Column(\n                        modifier = Modifier.padding(16.dp),\n                        verticalArrangement = Arrangement.spacedBy(12.dp)\n                    ) {\n                        // Toggle at the top\n                        pxpCheckout.buildComponentView(\n                            component = toggleComponent,\n                            modifier = Modifier.fillMaxWidth()\n                        )\n                        \n                        Divider()\n                        \n                        // PayPal button in the middle\n                        pxpCheckout.buildComponentView(\n                            component = paypalComponent,\n                            modifier = Modifier.fillMaxWidth()\n                        )\n                        \n                        // Consent at the bottom\n                        pxpCheckout.buildComponentView(\n                            component = consentComponent,\n                            modifier = Modifier.fillMaxWidth()\n                        )\n                    }\n                }\n                \n                // Status message\n                paymentStatus?.let { status ->\n                    Text(\n                        text = status,\n                        style = MaterialTheme.typography.bodyMedium\n                    )\n                }\n            }\n        }\n        \n        // Success dialog\n        if (showSuccessDialog) {\n            AlertDialog(\n                onDismissRequest = { showSuccessDialog = false },\n                title = { Text(\"Payment Successful\") },\n                text = { Text(paymentStatus ?: \"\") },\n                confirmButton = {\n                    Button(onClick = { \n                        showSuccessDialog = false\n                        finish()\n                    }) {\n                        Text(\"OK\")\n                    }\n                }\n            )\n        }\n    }\n    \n    private fun getUserIdToken(): String? {\n        // Check vault status and return user ID token if available\n        return null\n    }\n}\n","lang":"kotlin"},"children":[]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"whats-next","__idx":18},"children":["What's next?"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"customise-the-look-and-feel","__idx":19},"children":["Customise the look and feel"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["You can configure the appearance and behaviour of the PayPal component to fit your brand. We've documented all configurable parameters in the ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/guides/checkout/components/android/paypal/about-configuration"},"children":["Configuration"]}," section."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"kotlin","header":{"controls":{"copy":{}}},"source":"val paypalConfig = PayPalComponentConfig(\n    renderType = \"standalone\",\n    payeeEmailAddress = \"merchant@example.com\",\n    paymentDescription = \"Premium Subscription\",\n    shippingPreference = \"NoShipping\",\n    userAction = \"PayNow\",\n    fundingSources = \"paypal\",\n    locale = \"en-US\",\n    style = PayPalButtonStyle(\n        layout = \"horizontal\",\n        color = \"blue\",\n        shape = \"pill\",\n        label = \"buynow\",\n        height = 45,\n        borderRadius = 4\n    ),\n    queryParams = PayPalQueryParams(\n        buyerCountry = \"US\",\n        debug = false\n    )\n)\n","lang":"kotlin"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"add-more-event-handling","__idx":20},"children":["Add more event handling"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The PayPal component emits events based on user interaction or validation. As seen in the steps above, you can implement callback functions to handle these events. For more information about all the available events, see the ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/guides/checkout/components/android/paypal/events"},"children":["Events"]}," page."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"kotlin","header":{"controls":{"copy":{}}},"source":"val paypalConfig = PayPalComponentConfig(\n    onShippingAddressChange = { data ->\n        // Validate shipping address\n        val isValid = validateShippingAddress(data)\n        if (isValid) null else \"reject:INVALID_ADDRESS\"\n    },\n    onShippingOptionsChange = { data ->\n        // Handle shipping option changes\n        updateShippingCosts(data)\n        null\n    }\n)\n","lang":"kotlin"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"add-error-handling","__idx":21},"children":["Add error handling"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Error handling is crucial for payment components because they deal with sensitive financial data and complex validation rules. For more details about error handling, see the ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/guides/checkout/components/android/paypal/troubleshooting"},"children":["Troubleshooting"]}," page."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"kotlin","header":{"controls":{"copy":{}}},"source":"try {\n    val paypalComponent = pxpCheckout.createComponent(\n        type = ComponentType.PAYPAL,\n        config = paypalConfig\n    )\n    \n    pxpCheckout.buildComponentView(\n        component = paypalComponent,\n        modifier = Modifier.fillMaxWidth()\n    )\n} catch (e: Exception) {\n    Log.e(\"PayPal\", \"Failed to initialise PayPal component\", e)\n    \n    // Show fallback UI or error message to user\n    Text(\n        text = \"Payment system temporarily unavailable. Please try again later.\",\n        color = MaterialTheme.colorScheme.error\n    )\n}\n","lang":"kotlin"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"subscribe-to-webhooks","__idx":22},"children":["Subscribe to webhooks"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["To get real-time updates about PayPal transactions, you can subscribe to the PayPal webhooks in the Unity Portal."]}]},"headings":[{"value":"Implementation","id":"implementation","depth":1},{"value":"Overview","id":"overview","depth":2},{"value":"Before you start","id":"before-you-start","depth":2},{"value":"Choose your implementation approach","id":"choose-your-implementation-approach","depth":2},{"value":"Implement PayPal payments","id":"implement-paypal-payments","depth":2},{"value":"Step 1: Initialise the SDK","id":"step-1-initialise-the-sdk","depth":3},{"value":"Step 2: Configure the component","id":"step-2-configure-the-component","depth":3},{"value":"Step 3: Create and render the component","id":"step-3-create-and-render-the-component","depth":3},{"value":"Step 4: Handle the payment result","id":"step-4-handle-the-payment-result","depth":3},{"value":"Step 1: Initialise the SDK","id":"step-1-initialise-the-sdk-1","depth":3},{"value":"Step 2: Configuration","id":"step-2-configuration","depth":3},{"value":"Step 3: Create and render the component","id":"step-3-create-and-render-the-component-1","depth":3},{"value":"Step 4: Handle the payment result","id":"step-4-handle-the-payment-result-1","depth":3},{"value":"Step 1: Initialise the SDK","id":"step-1-initialise-the-sdk-2","depth":3},{"value":"Step 2: Configuration","id":"step-2-configuration-1","depth":3},{"value":"Step 3: Create and render the component","id":"step-3-create-and-render-the-component-2","depth":3},{"value":"Step 4: Handle the payment result","id":"step-4-handle-the-payment-result-2","depth":3},{"value":"Complete examples","id":"complete-examples","depth":2},{"value":"What's next?","id":"whats-next","depth":2},{"value":"Customise the look and feel","id":"customise-the-look-and-feel","depth":3},{"value":"Add more event handling","id":"add-more-event-handling","depth":3},{"value":"Add error handling","id":"add-error-handling","depth":3},{"value":"Subscribe to webhooks","id":"subscribe-to-webhooks","depth":3}],"frontmatter":{"markdown":{"toc":{"depth":2}},"seo":{"title":"Implementation"}},"lastModified":"2026-02-26T12:14:32.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/guides/checkout/components/android/paypal/implementation","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}