{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-guides/sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":["sub-heading","br","details","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":["Learn about how to configure the Paze button component for Android."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"basic-usage","__idx":1},"children":["Basic usage"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"minimal-configuration","__idx":2},"children":["Minimal configuration"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["At minimum, the Paze button requires a session with Paze enabled (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["allowedFundingTypes.wallets.paze.clientId"]},"), USD transaction data, and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["merchantCategoryCode"]}," in the session for the complete step. Component configuration can be as simple as:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"kotlin","header":{"controls":{"copy":{}}},"source":"val config = PazeButtonComponentConfig().apply {\n    emailAddress = \"customer@example.com\"\n}\n\nval pazeButton = checkout.createComponent<PazeButtonComponent>(\n    ComponentType.PAZE_BUTTON,\n    config\n)\n","lang":"kotlin"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The minimal component config supports these optional identity 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":{"width":"50%","data-label":"Property"},"children":["Property "]},{"$$mdtype":"Tag","name":"th","attributes":{"width":"50%","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":["emailAddress"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Optional shopper email. Validated when provided (max 128 characters, RFC 5322-style format). Forwarded to the Paze create-session request when set."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["phoneNumber"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Optional US phone number: 11 digits starting with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["1"]},", without the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["+"]}," prefix (e.g. ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["15551234567"]},"). Forwarded to create-session when set."]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Optional ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["emailAddress"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["phoneNumber"]}," are recommended when you have verified shopper identity — Paze uses them during checkout. Each field is validated independently when set."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["After presentment validation succeeds, the button is shown when you render ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Content()"]},". Optional ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["emailAddress"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["phoneNumber"]}," are forwarded to the Paze create-session request when provided. Include ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["merchantCategoryCode"]}," in ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["allowedFundingTypes.wallets.paze"]}," in the session for the complete step."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The SDK opens Paze checkout in a Chrome Custom Tab and decrypts tokens by default. Implement ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onGetShopper"]}," on ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PxpSdkConfig"]}," to supply shopper data during authorisation."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"advanced-configuration","__idx":3},"children":["Advanced configuration"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The following example shows common optional properties and lifecycle callbacks on ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PazeButtonComponentConfig"]},":"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"kotlin","header":{"controls":{"copy":{}}},"source":"val config = PazeButtonComponentConfig().apply {\n    emailAddress = \"customer@example.com\"\n    phoneNumber = \"15551234567\"\n    paymentDescription = \"Order #12345\"\n    billingPreference = PazeBillingPreference.ALL\n    acceptedPaymentCardNetworks = listOf(\n        PazeAcceptedPaymentCardNetwork.VISA,\n        PazeAcceptedPaymentCardNetwork.MASTERCARD,\n    )\n    cobrand = listOf(PazeCobrandConfig(cobrandName = \"Rewards Plus\", benefitsOffered = true))\n    performAVS = true\n    style = PazeButtonStyleConfig(\n        color = PazeButtonColor.PAZE_BLUE,\n        shape = PazeButtonShape.PILL,\n        label = PazeButtonLabel.CHECKOUT_WITH,\n    )\n\n    onInit = { Log.d(\"Paze\", \"Initialised\") }\n    onPresentmentResolved = { customTabAvailable -> Log.d(\"Paze\", \"Custom Tab available: $customTabAvailable\") }\n    onCheckoutComplete = { _ -> true }\n    onPreDecryption = { true }\n    onPostDecryption = { payload -> Log.d(\"Paze\", payload.fundingData.cardNetwork) }\n    onPostAuthorisation = { result ->\n        Log.d(\"Paze\", result.systemTransactionId)\n    }\n}\n\nval pazeButton = checkout.createComponent<PazeButtonComponent>(ComponentType.PAZE_BUTTON, config)\n","lang":"kotlin"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The following table describes optional properties on ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PazeButtonComponentConfig"]},":"]},{"$$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":["emailAddress"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Optional shopper email. Validated at presentment and checkout when provided. Forwarded to create-session when set."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["phoneNumber"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Optional US phone: 11 digits starting with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["1"]},", without ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["+"]},". Validated at presentment and checkout when provided. Forwarded to create-session when set."]}]},{"$$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":["Optional statement descriptor. Maximum 25 characters. Validated during presentment."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["billingPreference"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["PazeBillingPreference?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Billing address collection in the Paze checkout. When ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["null"]},", the SDK defaults to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ALL"]}," for create-session; the complete request sends the configured value only when set.",{"$$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":["ALL"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ZIP_COUNTRY"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["NONE"]}]}]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["sessionId"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Optional session ID echoed back by Paze. Falls back to the SDK session ID when not set. Validated at checkout when provided (max 255 characters)."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["acceptedShippingCountries"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["List<String>?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The list of accepted shipping countries, in ISO 3166-1 alpha-2 format. Forwarded to create-session when set."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["acceptedPaymentCardNetworks"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["List<PazeAcceptedPaymentCardNetwork>?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The list of accepted card networks. When omitted, empty, or when all three supported networks are explicitly selected, Paze receives no network filter and all supported networks are accepted. Subsets restrict eligible cards. Forwarded to create-session when set.",{"$$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":["VISA"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["MASTERCARD"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$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":["cobrand"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["List<PazeCobrandConfig>?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Optional cobrand entries for eligible card display in the Paze wallet. Each entry requires a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["cobrandName"]},". Forwarded to create-session when set."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["style"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["PazeButtonStyleConfig?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Official Paze button styling. When ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["null"]},", default Paze button styling is used. See ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"#styling"},"children":["Styling"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["performAVS"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Boolean?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["When explicitly ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["true"]},", includes billing address from the decrypted payload in AVS fields when the SDK submits the transaction. ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["null"]}," or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["false"]}," disables AVS. Set ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["billingPreference"]}," to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ALL"]}," when using AVS."]}]}]}]}]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"info"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Your merchant branding (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["clientName"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["siteName"]},") is configured on ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PxpSdkConfig"]},". Both are optional; the SDK validates length when set. ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["clientName"]}," maps to Paze's ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["name"]}," (max 50 characters) and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["siteName"]}," maps to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["brandName"]}," (max 50 characters)."]}]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"info"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PazeButtonComponentConfig"]}," also exposes ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["confirmLaunch"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["enhancedTransactionData"]},". These properties are reserved for checkout drop-in integration and are not read by the standalone Paze button component. Do not set them when integrating the component directly."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"styling","__idx":4},"children":["Styling"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The component renders native Paze button artwork. Configure official attributes with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PazeButtonStyleConfig"]},":"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"kotlin","header":{"controls":{"copy":{}}},"source":"config.style = PazeButtonStyleConfig(\n    color = PazeButtonColor.PAZE_BLUE,\n    shape = PazeButtonShape.PILL,\n    label = PazeButtonLabel.CHECKOUT_WITH,\n)\n","lang":"kotlin"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Supported ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PazeButtonStyleConfig"]}," 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":["color"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["PazeButtonColor"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The button colour theme. ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["AUTO"]}," (default) adapts to the system theme: Paze Blue in light mode, White in dark mode.",{"$$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":["AUTO"]}," (default)"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PAZE_BLUE"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["WHITE"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["WHITE_WITH_OUTLINE"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["MIDNIGHT_BLACK"]}]}]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["shape"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["PazeButtonShape"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The button shape.",{"$$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":["DEFAULT"]}," (default, 4 dp corner radius)"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["RECTANGLE"]}," (0 dp, square corners)"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PILL"]}," (fully rounded)"]}]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["label"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["PazeButtonLabel"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The button label artwork. Default is ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CHECKOUT_WITH"]},".",{"$$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":["CHECKOUT_WITH"]}," (default)"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CHECKOUT"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PAZE_CHECKOUT"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["DONATE_WITH"]}]}]}]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Update the button style at runtime:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"kotlin","header":{"controls":{"copy":{}}},"source":"pazeButton.updateConfig(pazeButton.config.apply {\n    style = PazeButtonStyleConfig(color = PazeButtonColor.WHITE, shape = PazeButtonShape.PILL)\n})\n","lang":"kotlin"},"children":[]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"warning"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Don't override the Paze button with custom Compose modifiers that alter its appearance. For example ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Modifier.background"]},", tint modifiers, or colour overrides on the button Composable. Use only the supported ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["style"]}," values to remain compliant with Paze branding guidelines. See ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/guides/checkout/components/android/paze/compliance"},"children":["Compliance"]},"."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"address-verification-performavs","__idx":5},"children":["Address verification (performAVS)"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["When ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["performAVS"]}," is explicitly ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["true"]},", the SDK adds billing address data from the decrypted Paze payload to the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["addressVerification"]}," field of the transaction request when available. Set ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["billingPreference"]}," to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ALL"]}," so the Paze wallet collects and returns a billing address during checkout."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"kotlin","header":{"controls":{"copy":{}}},"source":"val config = PazeButtonComponentConfig().apply {\n    performAVS = true\n    billingPreference = PazeBillingPreference.ALL\n}\n","lang":"kotlin"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["See ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/guides/checkout/components/android/paze/compliance#address-verification-avs"},"children":["Compliance"]}," for backend decryption and AVS considerations."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"kount-device-fingerprinting","__idx":6},"children":["Kount device fingerprinting"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Kount device fingerprinting is enabled by default on ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PxpSdkConfig"]},". Disable it only when your fraud strategy does not require device-risk data — for example during local testing:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"kotlin","header":{"controls":{"copy":{}}},"source":"val sdkConfig = PxpSdkConfig(\n    kountDisabled = true,\n    // ...\n)\n","lang":"kotlin"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Pass Kount risk screening data at authorisation through ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onPreAuthorisation"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PazePreAuthorisationResult.TransactionInitData(...)"]},". See ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/guides/checkout/components/android/paze/events#onpreauthorisation"},"children":["Events"]}," and ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/guides/checkout/components/android/paze/compliance#kount-risk-screening"},"children":["Compliance"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"event-handling","__idx":7},"children":["Event handling"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Register callbacks on ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PazeButtonComponentConfig"]}," to hook into the checkout lifecycle:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"kotlin","header":{"controls":{"copy":{}}},"source":"config.onInit = { }\nconfig.onPresentmentResolved = { customTabAvailable -> }\nconfig.onPazeButtonClicked = { }\nconfig.onCheckoutComplete = { result -> true }\nconfig.onCheckoutIncomplete = { result -> }\nconfig.onComplete = { result -> }\nconfig.onPreDecryption = { true }\nconfig.onPostDecryption = { decryptedPayload -> }\nconfig.onPreAuthorisation = { PazePreAuthorisationResult.Proceed }\nconfig.onPostAuthorisation = { result -> }\nconfig.onSubmitError = { submitError -> }\nconfig.onError = { error -> }\n","lang":"kotlin"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The following table summarises each callback:"]},{"$$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":"Callback"},"children":["Callback"]},{"$$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":["onInit"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["() -> Unit"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Called after presentment validation succeeds, when ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Content()"]}," is composed."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onPresentmentResolved"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["(Boolean) -> Unit"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["When presentment succeeds, called with whether a Custom Tabs–compatible browser is available (the button remains visible either way). When presentment validation fails, the button is hidden and this callback receives ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["false"]}," (see ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onError"]},")."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onPazeButtonClicked"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["suspend () -> Unit"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Called when the button is tapped, after checkout validation and before the Custom Tab opens. Use for analytics or UI updates only — there is no return value. To block checkout before the tab opens, disable the button in your UI until prerequisites are met."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onCheckoutComplete"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["suspend (PazeCheckoutResult) -> Boolean"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Called when checkout returns ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["COMPLETE"]},". Return ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["true"]}," to proceed, or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["false"]}," to cancel. Defaults to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["true"]}," when omitted."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onCheckoutIncomplete"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["suspend (PazeCheckoutResult) -> Unit"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Called when checkout ends without completion, the shopper cancels, or you return ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["false"]}," from ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onCheckoutComplete"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onComplete"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["suspend (PazeCompleteResult) -> Unit"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Called when the complete response is decoded, before decryption and authorisation."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onPreDecryption"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["suspend () -> Boolean"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Called after ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onComplete"]},", before SDK decryption. Defaults to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["true"]}," when omitted."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onPostDecryption"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["suspend (PazeDecryptTokenResponseSuccess) -> Unit"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Called after the SDK decrypts the secured payload. Skipped when ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onPreDecryption"]}," returns ",{"$$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":["onPreAuthorisation"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["suspend () -> PazePreAuthorisationResult"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Called before transaction submission. Return ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Proceed"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Cancel"]},", or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["TransactionInitData(...)"]},". Defaults to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Proceed"]}," when omitted."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onPostAuthorisation"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["suspend (MerchantSubmitResult) -> Unit"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Called when the SDK receives a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["MerchantSubmitResult"]}," with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["merchantTransactionId"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["systemTransactionId"]},". Only invoked when this callback is registered on the config. Verify the transaction outcome on your backend."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onSubmitError"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["suspend (BaseSubmitResult) -> Unit"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Called when authorisation submission fails. Cast to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["FailedSubmitResult"]}," for error details."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onError"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["(BaseSdkException) -> Unit"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Called on presentment, checkout, complete, or decryption errors. Shopper cancellation uses ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onCheckoutIncomplete"]},"."]}]}]}]}]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"info"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For detailed callback payloads and event data structures, see ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/guides/checkout/components/android/paze/events"},"children":["Events"]},"."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["When ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onPreDecryption"]}," returns ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["false"]}," (merchant-managed decryption), the SDK skips decrypt and authorisation. Do not wire ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onPostDecryption"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onPreAuthorisation"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onPostAuthorisation"]},", or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onSubmitError"]}," on that path — use ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onComplete"]}," to receive the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["securedPayload"]}," instead. See ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/guides/checkout/components/android/paze/implementation#backend-decryption"},"children":["Implementation"]},"."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"displaying-the-component","__idx":8},"children":["Displaying the component"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Render the Paze button in your Compose hierarchy:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"kotlin","header":{"controls":{"copy":{}}},"source":"pazeButton.Content(modifier = Modifier.fillMaxWidth())\n","lang":"kotlin"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Presentment runs automatically when you render ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Content()"]}," with a valid ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Context"]},". Handle checkout redirects in your host Activity — see ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/guides/checkout/components/android/paze/implementation#step-2-handle-checkout-redirects"},"children":["Implementation"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"examples","__idx":9},"children":["Examples"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"donation-flow","__idx":10},"children":["Donation flow"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Use the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["DONATE_WITH"]}," label and a short statement descriptor:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"kotlin","header":{"controls":{"copy":{}}},"source":"config.style = PazeButtonStyleConfig(\n    color = PazeButtonColor.MIDNIGHT_BLACK,\n    shape = PazeButtonShape.DEFAULT,\n    label = PazeButtonLabel.DONATE_WITH,\n)\nconfig.paymentDescription = \"Charity donation\"\n","lang":"kotlin"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"enterprise-payment-with-fraud-detection","__idx":11},"children":["Enterprise payment with fraud detection"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Enable billing collection, AVS, and Kount risk screening before authorisation:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"kotlin","header":{"controls":{"copy":{}}},"source":"val config = PazeButtonComponentConfig().apply {\n    billingPreference = PazeBillingPreference.ALL\n    performAVS = true\n    onPreAuthorisation = {\n        PazePreAuthorisationResult.TransactionInitData(\n            PazeTransactionInitData(riskScreeningData = buildRiskScreeningData()),\n        )\n    }\n    onPostAuthorisation = { result ->\n        verifyPaymentOnBackend(systemTransactionId = result.systemTransactionId)\n    }\n}\n","lang":"kotlin"},"children":[]}]},"headings":[{"value":"Configuration","id":"configuration","depth":1},{"value":"Basic usage","id":"basic-usage","depth":2},{"value":"Minimal configuration","id":"minimal-configuration","depth":3},{"value":"Advanced configuration","id":"advanced-configuration","depth":3},{"value":"Styling","id":"styling","depth":2},{"value":"Address verification (performAVS)","id":"address-verification-performavs","depth":2},{"value":"Kount device fingerprinting","id":"kount-device-fingerprinting","depth":2},{"value":"Event handling","id":"event-handling","depth":2},{"value":"Displaying the component","id":"displaying-the-component","depth":2},{"value":"Examples","id":"examples","depth":2},{"value":"Donation flow","id":"donation-flow","depth":3},{"value":"Enterprise payment with fraud detection","id":"enterprise-payment-with-fraud-detection","depth":3}],"frontmatter":{"seo":{"title":"Configuration"}},"lastModified":"2026-07-01T15:11:56.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/guides/checkout/components/android/paze/configuration","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}