{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-guides/sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":["sub-heading","br","details","required","admonition"]},"type":"markdown"},"seo":{"title":"Configuration","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":"configuration","__idx":0},"children":["Configuration"]},{"$$mdtype":"Tag","name":"SubHeading","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Configure Checkout Drop-in with unified settings for all payment methods, callbacks, and transaction data."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"overview","__idx":1},"children":["Overview"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Checkout Drop-in uses a single, unified configuration at initialisation. Instead of configuring individual payment components, you configure Drop-in once and it automatically handles all payment methods."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"configuration-structure","__idx":2},"children":["Configuration structure"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["All configuration happens at initialisation via ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CheckoutDropIn.initialize()"]},":"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"kotlin","header":{"controls":{"copy":{}}},"source":"import androidx.compose.foundation.layout.fillMaxWidth\nimport androidx.compose.ui.Modifier\nimport com.pxp.checkout.checkoutdropin.CheckoutDropIn\nimport com.pxp.checkout.checkoutdropin.types.CheckoutDropInConfig\nimport com.pxp.checkout.models.DropInTransactionData\nimport com.pxp.checkout.models.DropInTransactionIntentData\nimport com.pxp.checkout.models.*\nimport com.pxp.checkout.checkoutdropin.types.*\n\nval checkoutDropIn = CheckoutDropIn.initialize(\n    context = context,\n    config = CheckoutDropInConfig(\n        // REQUIRED\n        environment = Environment.TEST,\n        session = sessionData,\n        ownerType = \"MerchantGroup\",\n        ownerId = \"MERCHANT-1\",\n        transactionData = DropInTransactionData(\n            amount = 99.99,\n            currency = \"USD\",\n            entryType = EntryType.Ecom,\n            intent = DropInTransactionIntentData(\n                card = IntentType.Authorisation,\n                paypalDropInIntent = DropInPayPalIntentType.Authorisation\n            ),\n            merchant = \"MERCHANT-1\",\n            merchantTransactionId = UUID.randomUUID().toString(),\n            merchantTransactionDate = { Instant.now().toString() }\n        ),\n        \n        // OPTIONAL: Fraud detection\n        kountDisabled = false, // Set to true to disable Kount fraud detection\n        \n        // REQUIRED: Callbacks\n        onSuccess = { result -> /* ... */ },\n        onError = { error -> /* ... */ },\n        \n        // OPTIONAL: Callbacks\n        onGetShopper = { Shopper(id = \"shopper-123\") },\n        onBeforeSubmit = { paymentMethod -> /* return true to proceed */ },\n        onSubmit = { paymentMethod -> /* ... */ },\n        analyticsEvent = { event -> /* ... */ }\n    )\n)\n\n// Create the component from a coroutine\nval component = checkoutDropIn.create()\n\n// Render in Compose UI\ncomponent.Content(modifier = Modifier.fillMaxWidth())\n","lang":"kotlin"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"required-configuration","__idx":3},"children":["Required configuration"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"environment","__idx":4},"children":["Environment"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Specifies which Unity environment to connect to:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"kotlin","header":{"controls":{"copy":{}}},"source":"environment = Environment.TEST // or Environment.LIVE\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":{"align":"left","data-label":"Value"},"children":["Value"]},{"$$mdtype":"Tag","name":"th","attributes":{"align":"left","data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Environment.TEST"]}]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Sandbox environment. Use this for development, testing, and staging."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Environment.LIVE"]}]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Live environment. Use this for production deployments."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"session-data","__idx":5},"children":["Session data"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Session data is retrieved from your backend and contains payment configuration:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"kotlin","header":{"controls":{"copy":{}}},"source":"// Backend endpoint\nval sessionData = fetchSessionFromBackend()\n\n// Pass to Drop-in\nsession = sessionData\n","lang":"kotlin"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Session data includes:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["sessionId"]},": Unique session identifier."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["hmacKey"]},": HMAC authentication key."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["encryptionKey"]},": Encryption key."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["allowedFundingTypes"]},": Which payment methods are enabled."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Session timeout and merchant identification."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For session creation details, see our ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/guides/checkout/drop-in/android/implementation"},"children":["implementation guide"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"owner-identification","__idx":6},"children":["Owner identification"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Identifies who owns this transaction:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"kotlin","header":{"controls":{"copy":{}}},"source":"ownerType = \"MerchantGroup\",\nownerId = \"MERCHANT-1\"\n","lang":"kotlin"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"transaction-data","__idx":7},"children":["Transaction data"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Defines the payment amount, currency, and intent:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"kotlin","header":{"controls":{"copy":{}}},"source":"transactionData = DropInTransactionData(\n    amount = 99.99,\n    currency = \"USD\",\n    entryType = EntryType.Ecom,\n    intent = DropInTransactionIntentData(\n        card = IntentType.Authorisation,\n        paypalDropInIntent = DropInPayPalIntentType.Authorisation\n    ),\n    merchant = \"MERCHANT-1\",\n    merchantTransactionId = UUID.randomUUID().toString(),\n    merchantTransactionDate = { Instant.now().toString() }\n)\n","lang":"kotlin"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"transaction-data-properties","__idx":8},"children":["Transaction data properties"]},{"$$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":"Property"},"children":["Property"]},{"$$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":["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":["Transaction amount shown and submitted by the Drop-in."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["currency"]},{"$$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":["Currency code, for example ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["\"USD\""]},". Must be a valid ISO 4217 currency code."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["entryType"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["EntryType?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Transaction entry type. Usually ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["EntryType.Ecom"]}," for e-commerce transactions."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["intent"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["DropInTransactionIntentData"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Required","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Card and PayPal intent configuration. See ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/guides/checkout/drop-in/how-it-works#supported-transaction-intents"},"children":["supported transaction intents"]}," for details."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["merchant"]},{"$$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":["Merchant name or identifier used for the transaction."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["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":["Merchant-generated transaction ID. Use a UUID or order ID to ensure uniqueness."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["merchantTransactionDate"]},{"$$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":["Function returning the transaction date/time string in ISO 8601 format."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["shopper"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Shopper?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Optional shopper data attached to the transaction."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["recurring"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["RecurringData?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Optional recurring payment configuration for subscriptions."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["cardAcceptorName"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Optional card acceptor name shown on card statements."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"merchant-transaction-id","__idx":9},"children":["Merchant transaction ID"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Your unique identifier for the transaction:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"kotlin","header":{"controls":{"copy":{}}},"source":"merchantTransactionId = UUID.randomUUID().toString()\n\n// Or use your own format\nmerchantTransactionId = \"order-${orderId}\"\n","lang":"kotlin"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"optional-configuration","__idx":10},"children":["Optional configuration"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"unified-callbacks","__idx":11},"children":["Unified callbacks"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Drop-in provides unified callbacks that work for all payment methods:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"kotlin","header":{"controls":{"copy":{}}},"source":"CheckoutDropInConfig(\n    // OPTIONAL: Get shopper information\n    onGetShopper = {\n        Shopper(id = \"shopper-123\")\n    },\n    \n    // REQUIRED: Called when payment succeeds\n    onSuccess = { result ->\n        Log.d(\"CheckoutDropIn\", \"Payment successful: ${result.systemTransactionId}\")\n        // CRITICAL: Always verify on backend before fulfilling order\n        verifyPaymentOnBackend(result)\n    },\n    \n    // REQUIRED: Called when payment fails\n    onError = { error ->\n        Log.e(\"CheckoutDropIn\", \"Payment failed: ${error.code} - ${error.message}\")\n    },\n    \n    // OPTIONAL: Called before payment submission (can cancel)\n    onBeforeSubmit = { paymentMethod ->\n        Log.d(\"CheckoutDropIn\", \"Payment method: $paymentMethod\")\n        // Return false to cancel payment\n        true\n    },\n    \n    // OPTIONAL: Called when payment starts processing\n    onSubmit = { paymentMethod ->\n        Log.d(\"CheckoutDropIn\", \"Processing payment...\")\n    }\n)\n","lang":"kotlin"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For detailed callback documentation, see ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/guides/checkout/drop-in/android/events"},"children":["Events"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"analytics","__idx":12},"children":["Analytics"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Track payment flow events:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"kotlin","header":{"controls":{"copy":{}}},"source":"analyticsEvent = { event ->\n    Log.d(\"Analytics\", \"Event: ${event.eventName}\")\n    // Send to your analytics platform\n    sendToFirebaseAnalytics(event)\n}\n","lang":"kotlin"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For detailed analytics documentation, see ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/guides/checkout/drop-in/android/analytics"},"children":["Analytics"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"payment-method-configuration","__idx":13},"children":["Payment method configuration"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Configure payment-method-specific settings:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"kotlin","header":{"controls":{"copy":{}}},"source":"methodConfig = DropInMethodConfig(\n    global = DropInGlobalConfig(\n        acceptedCardNetworks = listOf(\n            CardNetworks.VISA,\n            CardNetworks.MASTERCARD\n        ),\n        allowedIssuerCountryCodes = listOf(\"US\", \"GB\")\n    ),\n    paypal = DropInPaypalConfig(\n        shippingPreference = ShippingPreference.GET_FROM_FILE\n    ),\n    googlePay = DropInGooglePayConfig(\n        collectCvc = CollectCvcMode.DEFAULT,\n        billingAddressRequired = true\n    ),\n    card = DropInCardConfig() // Currently empty marker\n)\n","lang":"kotlin"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"#payment-method-configuration"},"children":["Learn more about payment method configuration"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"payment-method-configuration-1","__idx":14},"children":["Payment method configuration"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"global-configuration","__idx":15},"children":["Global configuration"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Global settings apply to all payment methods:"]},{"$$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":"Property"},"children":["Property"]},{"$$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":["acceptedCardNetworks"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["List<CardNetworks>?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Limits accepted card networks for card and wallet payments. Supported values include ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["VISA"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["MASTERCARD"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["AMERICAN_EXPRESS"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["UNION_PAY"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["DINERS"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["JCB"]},", and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["DISCOVER"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["allowedCardFundingSource"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["List<CardFundingSource>?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Limits accepted funding sources. Supported values are ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CREDIT"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["DEBIT"]},", and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PREPAID"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["allowedIssuerCountryCodes"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["List<String>?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Allows only cards issued in the listed ISO country codes."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transactionInfo"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["TransactionInfo?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Payment display information such as country code, merchant display name, total label, total status, and line items."]}]},{"$$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":["Shipping options displayed for supported wallet flows."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["couponInfo"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["CouponInfo?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Optional coupon code and description."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["riskScreeningData"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["RiskScreeningData?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Kount risk screening data for fraud checks."]}]},{"$$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":["(PaymentMethod) -> Boolean"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Called before tokenisation/consent-sensitive actions. Return ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["true"]}," to continue."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onCancel"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["(PaymentMethod, Any?) -> Unit"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Called when the buyer cancels a supported payment flow."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"paypal-configuration","__idx":16},"children":["PayPal configuration"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["PayPal-specific settings:"]},{"$$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":"Property"},"children":["Property"]},{"$$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":["fundingSources"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["List<PaypalFundingSources>?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Optional PayPal funding sources, such as ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PAYPAL"]}," or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PAYLATER"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["shippingOption"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Optional selected shipping option value."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["enableOneClickPayment"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Boolean?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Enables PayPal one-click payment behaviour when supported."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["locale"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["PayPal locale override."]}]},{"$$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":["Payee email address for the PayPal transaction."]}]},{"$$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":["Description shown for the PayPal payment."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["useBuiltInChangePreferredPaymentMethod"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Boolean?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Uses the built-in preferred payment method change behaviour when supported."]}]},{"$$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":["Boolean?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Enables PayPal consent component behaviour when supported."]}]},{"$$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":["ShippingPreference?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Shipping handling for PayPal. Values are ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["NO_SHIPPING"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["GET_FROM_FILE"]},", and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SET_PROVIDED_ADDRESS"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["buyerCountry"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Buyer country override."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onShippingAddressChange"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["(String) -> String?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Called when the PayPal shipping address changes. Return ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["null"]}," to accept or a reject response string to reject."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onShippingOptionsChange"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["(String) -> String?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Called when the PayPal shipping option changes. Return ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["null"]}," to accept or a reject response string to reject."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"google-pay-configuration","__idx":17},"children":["Google Pay configuration"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Google Pay-specific settings:"]},{"$$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":"Property"},"children":["Property"]},{"$$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":["collectCvc"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["CollectCvcMode?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Controls CVC collection for Google Pay. Values are ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ALWAYS"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["NEVER"]},", and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["DEFAULT"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["billingAddressRequired"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Boolean?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Requests a billing address from Google Pay."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["billingAddressParameters"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["BillingAddressParameters?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Billing address options. Currently supports ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["phoneNumberRequired"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["shippingAddressRequired"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Boolean?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Requests a full shipping address from Google Pay."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["shippingAddressParameters"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["ShippingAddressParameters?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Shipping address options, including ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["allowedCountryCodes"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["phoneNumberRequired"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["blockedIssuerCountryCodes"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["List<String>?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Blocks cards issued in the listed ISO country codes. Don't combine with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["allowedIssuerCountryCodes"]},"."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"card-configuration","__idx":18},"children":["Card configuration"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Card-specific settings (currently empty):"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"kotlin","header":{"controls":{"copy":{}}},"source":"card = DropInCardConfig() // Empty marker - inherits from global\n","lang":"kotlin"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"fallback-behaviour","__idx":19},"children":["Fallback behaviour"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Drop-in method configuration values are optional overrides. When you omit an optional value, the SDK derives the effective component configuration from the checkout session, Unity site configuration, or SDK defaults."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"global-and-card-fallbacks","__idx":20},"children":["Global and card fallbacks"]},{"$$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":"Config value"},"children":["Config value"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Fallback behaviour"},"children":["Fallback behaviour"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["methodConfig.global.acceptedCardNetworks"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Falls back to the card service configuration in the Unity Portal. If not configured in the portal, defaults to an empty list."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["methodConfig.global.transactionInfo.countryCode"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Falls back to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["siteConfig.merchantConfiguration.countryCode"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["methodConfig.global.transactionInfo.totalLabel"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Falls back to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["\"TOTAL\""]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["methodConfig.global.transactionInfo.totalStatus"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Falls back to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["DropInTotalStatus.FINAL"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["methodConfig.global.transactionInfo.lineItems"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Falls back to one generated subtotal display item using ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transactionData.amount"]},"."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"google-pay-fallbacks","__idx":21},"children":["Google Pay fallbacks"]},{"$$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":"Config value"},"children":["Config value"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Fallback behaviour"},"children":["Fallback behaviour"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["methodConfig.googlePay.collectCvc"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Falls back to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CollectCvcMode.DEFAULT"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["methodConfig.googlePay.billingAddressRequired"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Falls back to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["false"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["methodConfig.googlePay.billingAddressParameters.phoneNumberRequired"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Falls back to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["false"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["methodConfig.googlePay.shippingAddressRequired"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Falls back to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["false"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["methodConfig.googlePay.shippingAddressParameters.phoneNumberRequired"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Falls back to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["false"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["methodConfig.global.shippingOptions"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["If omitted, Google Pay sets ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["shippingOptionRequired = false"]}," and doesn't pass shipping option parameters."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"paypal-fallbacks","__idx":22},"children":["PayPal fallbacks"]},{"$$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":"Config value"},"children":["Config value"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Fallback behaviour"},"children":["Fallback behaviour"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["methodConfig.paypal.fundingSources"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Falls back to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["session.allowedFundingTypes.wallets.paypal.allowedFundingOptions"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["methodConfig.paypal.shippingPreference"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Falls back to PayPal ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["NoShipping"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["methodConfig.paypal.enableOneClickPayment"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Falls back to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["true"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["methodConfig.paypal.locale"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Falls back to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["\"en-US\""]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["methodConfig.paypal.consentComponent"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Falls back to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["true"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["methodConfig.paypal.useBuiltInChangePreferredPaymentMethod"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The built-in change preferred payment method toggle is only created when this value is explicitly ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["true"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["methodConfig.global.shippingOptions.amount"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["For PayPal shipping options, non-numeric amounts fall back to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["0.0"]},"."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"scale-best-practice","__idx":23},"children":["Scale best practice"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Checkout Drop-in supports UI scaling from ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["50% to 175%"]},". This value can be adjusted in the Unity portal to match the merchant checkout design and available screen space."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["During Android mobile testing, the best visual results were observed with scale values between ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["60% and 115%"]},". This range is the recommended choice for mobile resolutions because it keeps the Drop-in readable while reducing the risk of clipped content, crowded payment method sections, or excessive scrolling."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"recommended-starting-points","__idx":24},"children":["Recommended starting points"]},{"$$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":"Scale"},"children":["Scale"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Recommended use"},"children":["Recommended use"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["60% - 80%"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Compact layouts, smaller checkout containers, or screens with additional merchant content above/below the Drop-in."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["80% - 100%"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Default mobile checkout layouts. This is the safest range for most integrations."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["100% - 115%"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Larger mobile screens or merchant flows that need stronger visual emphasis."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Above 115%"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Supported by configuration, but should be tested carefully on target devices before release."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"tested-devices","__idx":25},"children":["Tested devices"]},{"$$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":"Device"},"children":["Device"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Display"},"children":["Display"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Resolution"},"children":["Resolution"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Android version / API level"},"children":["Android version / API level"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Google Pixel 8"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["6.2-inch OLED, 20:9 aspect ratio"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["1080 x 2400 px, approximately 428 ppi"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Android 14 / API 34"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Google Pixel 8a"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["6.1-inch OLED, 20:9 aspect ratio"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["1080 x 2400 px, approximately 430 ppi"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Android 14 / API 36.1"]}]}]}]}]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"info"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Merchants can still use the full ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["50% to 175%"]}," portal range, but values outside ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["60% to 115%"]}," should be reviewed on the merchant's own supported devices and checkout content before going live."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"complete-configuration-examples","__idx":26},"children":["Complete configuration examples"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"minimal-configuration-most-common","__idx":27},"children":["Minimal configuration (most common)"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"kotlin","header":{"controls":{"copy":{}}},"source":"import androidx.compose.foundation.layout.fillMaxWidth\nimport androidx.compose.ui.Modifier\nimport com.pxp.checkout.checkoutdropin.CheckoutDropIn\nimport com.pxp.checkout.checkoutdropin.types.CheckoutDropInConfig\nimport com.pxp.checkout.models.DropInTransactionData\nimport com.pxp.checkout.models.DropInTransactionIntentData\nimport com.pxp.checkout.models.*\nimport com.pxp.checkout.checkoutdropin.types.*\nimport java.time.Instant\nimport java.util.UUID\n\n// Get session from backend\nval sessionData = fetchSessionFromBackend()\n\n// Initialise with minimal config\nval checkoutDropIn = CheckoutDropIn.initialize(\n    context = context,\n    config = CheckoutDropInConfig(\n        environment = Environment.TEST,\n        session = sessionData,\n        ownerType = \"MerchantGroup\",\n        ownerId = \"MERCHANT-1\",\n        transactionData = DropInTransactionData(\n            amount = 99.99,\n            currency = \"USD\",\n            entryType = EntryType.Ecom,\n            intent = DropInTransactionIntentData(\n                card = IntentType.Authorisation,\n                paypalDropInIntent = DropInPayPalIntentType.Authorisation\n            ),\n            merchant = \"MERCHANT-1\",\n            merchantTransactionId = UUID.randomUUID().toString(),\n            merchantTransactionDate = { Instant.now().toString() }\n        ),\n        kountDisabled = false, // OPTIONAL: Set to true to disable Kount fraud detection\n        onGetShopper = {\n            Shopper(id = \"shopper-123\")\n        },\n        onSuccess = { result ->\n            verifyPaymentOnBackend(result)\n        },\n        onError = { error ->\n            showError(error.message ?: \"Payment failed\")\n        }\n    )\n)\n\n// Create and render\nval component = checkoutDropIn.create()\ncomponent.Content(modifier = Modifier.fillMaxWidth())\n","lang":"kotlin"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"full-configuration-with-all-callbacks","__idx":28},"children":["Full configuration (with all callbacks)"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"kotlin","header":{"controls":{"copy":{}}},"source":"import androidx.compose.foundation.layout.fillMaxWidth\nimport androidx.compose.ui.Modifier\nimport com.pxp.checkout.checkoutdropin.CheckoutDropIn\nimport com.pxp.checkout.checkoutdropin.types.*\nimport com.pxp.checkout.models.*\nimport java.time.Instant\nimport java.util.UUID\n\n// Get session from backend\nval sessionData = fetchSessionFromBackend()\n\n// Initialise with all callbacks\nval checkoutDropIn = CheckoutDropIn.initialize(\n    context = context,\n    config = CheckoutDropInConfig(\n        // REQUIRED\n        environment = Environment.LIVE,\n        session = sessionData,\n        ownerType = \"MerchantGroup\",\n        ownerId = \"MERCHANT-1\",\n        transactionData = DropInTransactionData(\n            amount = 149.99,\n            currency = \"USD\",\n            entryType = EntryType.Ecom,\n            intent = DropInTransactionIntentData(\n                card = IntentType.Authorisation,\n                paypalDropInIntent = DropInPayPalIntentType.Purchase\n            ),\n            merchant = \"MERCHANT-1\",\n            merchantTransactionId = \"order-${orderId}\",\n            merchantTransactionDate = { Instant.now().toString() }\n        ),\n        \n        // OPTIONAL: Fraud detection\n        kountDisabled = false, // Set to true to disable Kount fraud detection\n        \n        // CALLBACKS\n        onGetShopper = {\n            Shopper(id = \"shopper-123\")\n        },\n        \n        onBeforeSubmit = { paymentMethod ->\n            Log.d(\"CheckoutDropIn\", \"Payment method selected: $paymentMethod\")\n            \n            // Custom validation\n            val isValid = validateOrder(orderId)\n            if (!isValid) {\n                showToast(\"Order validation failed\")\n                return@CheckoutDropInConfig false // Cancel payment\n            }\n            \n            // Check inventory\n            val inStock = checkInventory(orderId)\n            if (!inStock) {\n                showToast(\"Item is out of stock\")\n                return@CheckoutDropInConfig false // Cancel payment\n            }\n            \n            true // Proceed with payment\n        },\n        \n        onSubmit = { paymentMethod ->\n            Log.d(\"CheckoutDropIn\", \"Payment processing started for: $paymentMethod\")\n            // Show loading spinner\n            showLoadingSpinner(true)\n        },\n        \n        onSuccess = { result ->\n            Log.d(\"CheckoutDropIn\", \"Payment successful: ${result.systemTransactionId}\")\n            \n            showLoadingSpinner(false)\n            \n            // CRITICAL: Verify on backend before fulfilling\n            lifecycleScope.launch {\n                try {\n                    val verified = verifyPaymentOnBackend(\n                        systemTransactionId = result.systemTransactionId,\n                        merchantTransactionId = result.merchantTransactionId,\n                        orderId = orderId\n                    )\n                    \n                    if (verified.success) {\n                        navigateToOrderConfirmation(verified.orderId)\n                    } else {\n                        showToast(\"Payment verification failed. Please contact support.\")\n                    }\n                } catch (e: Exception) {\n                    Log.e(\"CheckoutDropIn\", \"Verification failed\", e)\n                    showToast(\"Unable to verify payment. Please contact support.\")\n                }\n            }\n        },\n        \n        onError = { error ->\n            Log.e(\"CheckoutDropIn\", \"Payment error: ${error.code}\")\n            showLoadingSpinner(false)\n            \n            // Show user-friendly error message\n            val userMessage = when {\n                error.code == \"SDK1114\" -> \"Card verification failed\"\n                error.code == \"SDK1116\" -> \"Card payment failed\"\n                error.message?.contains(\"declined\", ignoreCase = true) == true -> \n                    \"Card declined. Please try a different card.\"\n                error.message?.contains(\"insufficient funds\", ignoreCase = true) == true -> \n                    \"Insufficient funds.\"\n                error.message?.contains(\"expired\", ignoreCase = true) == true -> \n                    \"This card has expired.\"\n                error.message?.contains(\"cvv\", ignoreCase = true) == true -> \n                    \"Invalid security code.\"\n                else -> error.message ?: \"Payment failed. Please try again.\"\n            }\n            \n            showError(userMessage)\n        },\n        \n        analyticsEvent = { event ->\n            // Send to Firebase Analytics\n            firebaseAnalytics.logEvent(event.eventName, bundleOf(\n                \"event_category\" to \"checkout\",\n                \"event_label\" to event.toString()\n            ))\n            \n            // Send to backend\n            sendAnalyticsToBackend(event)\n        },\n        \n        // Method-specific configuration\n        methodConfig = DropInMethodConfig(\n            global = DropInGlobalConfig(\n                acceptedCardNetworks = listOf(\n                    CardNetworks.VISA,\n                    CardNetworks.MASTERCARD,\n                    CardNetworks.AMERICAN_EXPRESS\n                ),\n                allowedCardFundingSource = listOf(\n                    CardFundingSource.CREDIT,\n                    CardFundingSource.DEBIT\n                ),\n                allowedIssuerCountryCodes = listOf(\"US\", \"GB\", \"CA\"),\n                transactionInfo = TransactionInfo(\n                    countryCode = \"US\",\n                    merchantDisplayName = \"Demo Store\",\n                    totalLabel = \"Total Amount\",\n                    totalStatus = DropInTotalStatus.FINAL,\n                    lineItems = listOf(\n                        TransactionLineItem(label = \"Products\", amount = \"5.00\"),\n                        TransactionLineItem(label = \"Shipping\", amount = \"2.00\")\n                    )\n                ),\n                onGetConsent = { paymentMethod ->\n                    // Show consent for cards and PayPal\n                    paymentMethod == PaymentMethod.CARD || \n                    paymentMethod == PaymentMethod.PAYPAL\n                },\n                onCancel = { paymentMethod, data ->\n                    Log.d(\"CheckoutDropIn\", \"Payment cancelled: $paymentMethod\")\n                    showLoadingSpinner(false)\n                    // Track cancellation\n                    trackEvent(\"payment_cancelled\", mapOf(\n                        \"payment_method\" to paymentMethod.toString()\n                    ))\n                }\n            ),\n            paypal = DropInPaypalConfig(\n                shippingPreference = ShippingPreference.GET_FROM_FILE\n            ),\n            googlePay = DropInGooglePayConfig(\n                collectCvc = CollectCvcMode.DEFAULT,\n                shippingAddressRequired = true,\n                shippingAddressParameters = ShippingAddressParameters(\n                    allowedCountryCodes = listOf(\"US\", \"GB\"),\n                    phoneNumberRequired = true\n                ),\n                billingAddressRequired = true,\n                billingAddressParameters = BillingAddressParameters(\n                    phoneNumberRequired = true\n                )\n            ),\n            card = DropInCardConfig()\n        )\n    )\n)\n\n// Create and render\nval component = checkoutDropIn.create()\ncomponent.Content(modifier = Modifier.fillMaxWidth())\n","lang":"kotlin"},"children":[]}]},"headings":[{"value":"Configuration","id":"configuration","depth":1},{"value":"Overview","id":"overview","depth":2},{"value":"Configuration structure","id":"configuration-structure","depth":2},{"value":"Required configuration","id":"required-configuration","depth":2},{"value":"Environment","id":"environment","depth":3},{"value":"Session data","id":"session-data","depth":3},{"value":"Owner identification","id":"owner-identification","depth":3},{"value":"Transaction data","id":"transaction-data","depth":3},{"value":"Transaction data properties","id":"transaction-data-properties","depth":4},{"value":"Merchant transaction ID","id":"merchant-transaction-id","depth":4},{"value":"Optional configuration","id":"optional-configuration","depth":2},{"value":"Unified callbacks","id":"unified-callbacks","depth":3},{"value":"Analytics","id":"analytics","depth":3},{"value":"Payment method configuration","id":"payment-method-configuration","depth":3},{"value":"Payment method configuration","id":"payment-method-configuration-1","depth":2},{"value":"Global configuration","id":"global-configuration","depth":3},{"value":"PayPal configuration","id":"paypal-configuration","depth":3},{"value":"Google Pay configuration","id":"google-pay-configuration","depth":3},{"value":"Card configuration","id":"card-configuration","depth":3},{"value":"Fallback behaviour","id":"fallback-behaviour","depth":2},{"value":"Global and card fallbacks","id":"global-and-card-fallbacks","depth":3},{"value":"Google Pay fallbacks","id":"google-pay-fallbacks","depth":3},{"value":"PayPal fallbacks","id":"paypal-fallbacks","depth":3},{"value":"Scale best practice","id":"scale-best-practice","depth":2},{"value":"Recommended starting points","id":"recommended-starting-points","depth":3},{"value":"Tested devices","id":"tested-devices","depth":3},{"value":"Complete configuration examples","id":"complete-configuration-examples","depth":2},{"value":"Minimal configuration (most common)","id":"minimal-configuration-most-common","depth":3},{"value":"Full configuration (with all callbacks)","id":"full-configuration-with-all-callbacks","depth":3}],"frontmatter":{"seo":{"title":"Configuration"}},"lastModified":"2026-05-21T11:24:56.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/guides/checkout/drop-in/android/configuration","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}