{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-guides/sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":["sub-heading","br","details","admonition"]},"type":"markdown"},"seo":{"title":"Troubleshooting","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":"troubleshooting","__idx":0},"children":["Troubleshooting"]},{"$$mdtype":"Tag","name":"SubHeading","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Learn how to diagnose and fix common issues with the Paze Android component."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"exception-types-and-error-codes","__idx":1},"children":["Exception types and error codes"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"component-exceptions","__idx":2},"children":["Component exceptions"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The Paze Android component surfaces ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["BaseSdkException"]}," errors with structured codes in the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SDK12XX"]}," range. The following table maps common exception types to their error codes:"]},{"$$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":"40%","data-label":"Exception"},"children":["Exception "]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Error code"},"children":["Error code"]},{"$$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":["PazeCheckoutLaunchException"]}," / ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PazeLoadFailedException"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SDK1200"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Failed to launch Paze checkout. For example, Custom Tab launch failed."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PazeConfigurationValidationFailedException"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["(client ID)"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SDK1202"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Missing ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["session.allowedFundingTypes.wallets.paze.clientId"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PazeMerchantCategoryCodeRequiredException"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SDK1202A"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Missing ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["session.allowedFundingTypes.wallets.paze.merchantCategoryCode"]}," at complete."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PazeConfigurationValidationFailedException"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["(client name)"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SDK1203"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["clientName"]}," exceeds 50 characters when set."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PazeConfigurationValidationFailedException"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["(brand name)"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SDK1204"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["siteName"]}," exceeds 50 characters when set."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PazeConfigurationValidationFailedException"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["(statement descriptor)"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SDK1205"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["paymentDescription"]}," exceeds 25 characters when set."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PazeInitializationFailedException"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SDK1206"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Paze initialisation or create-session failed."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PazeIdentityValidationFailedException"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["(email)"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SDK1209"]},"-",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SDK1210"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Email too long or invalid format."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PazeIdentityValidationFailedException"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["(phone)"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SDK1211"]},"-",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SDK1212"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Phone too long or invalid US E.164 format."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PazeConfigurationValidationFailedException"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["(currency)"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SDK1213"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Transaction currency is not ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["USD"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PazePaymentFailedException"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SDK1214"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Generic Paze checkout or wallet flow failure."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PazeCheckoutResponseMissingException"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SDK1215"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Paze checkout did not return a response for a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["COMPLETE"]}," result."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PazeCompleteResponseMissingException"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SDK1216"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Paze complete did not return an expected response."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PazeCompleteSecuredPayloadMissingException"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SDK1219"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Paze complete response did not contain a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["securedPayload"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PazeConfigurationValidationFailedException"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["(session ID)"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SDK1222"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Component ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["sessionId"]}," exceeds 255 characters."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PazeConfigurationValidationFailedException"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["(amount)"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SDK1229"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Transaction amount is 0 or negative at checkout."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PazeInitializationFailedException"]}," / ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PazeProviderException"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["(shipping countries)"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SDK1231"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["acceptedShippingCountries"]}," contains invalid ISO 3166-1 alpha-2 country codes. Typically returned by the create-session API at checkout."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PazeInitializationFailedException"]}," / ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PazeProviderException"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["(cobrand)"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SDK1232"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["A ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["cobrand"]}," entry is missing a non-empty ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["cobrandName"]},". Typically returned by the create-session API at checkout."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PazeDecryptFailedException"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SDK1233"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Failed to decrypt the Paze secured payload."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PazeTransactionFailedException"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SDK1235"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Transaction submission failed. Also surfaced through ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onSubmitError"]},"."]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Shopper cancellation and closing the Custom Tab without completing checkout call ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onCheckoutIncomplete"]}," rather than throwing an exception. Missing Paze ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["clientId"]}," surfaces as ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SDK1202"]}," at presentment. Authorisation submission failures (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SDK1235"]},") route to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onSubmitError"]},", not ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onError"]},". Create-session and complete API provider errors may also surface through ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PazeProviderException"]}," or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PazeInitializationFailedException"]}," with provider-specific codes — map these using ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["error.message"]}," and your backend logs. Codes such as ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SDK1231"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SDK1232"]}," are defined in the SDK but are typically returned by the create-session API rather than thrown locally at presentment."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"error-handling-best-practices","__idx":3},"children":["Error handling best practices"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"comprehensive-error-handler","__idx":4},"children":["Comprehensive error handler"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Route ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onError"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onCheckoutIncomplete"]},", and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onSubmitError"]}," to appropriate user messaging and logging:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"kotlin","header":{"controls":{"copy":{}}},"source":"config.onError = { error ->\n    Log.e(\"Paze\", \"Error: ${error.errorCode} ${error.message}\")\n\n    when (error.errorCode) {\n        \"SDK1202\", \"SDK1202A\" -> {\n            showAlternativePaymentMethods()\n            showMessage(\"Paze is not available for this order.\")\n        }\n        \"SDK1210\", \"SDK1212\" -> showMessage(\"Please check your contact details.\")\n        \"SDK1213\" -> showMessage(\"Paze is only available for USD transactions.\")\n        \"SDK1233\" -> showMessage(\"Payment token could not be processed. Please try again.\")\n        \"SDK1200\", \"SDK1214\" -> showMessage(\"Paze checkout failed. Please try again.\")\n        else -> showMessage(\"Payment could not be completed. Please try again.\")\n    }\n}\n\nconfig.onCheckoutIncomplete = { result ->\n    if (result.reason?.contains(\"cancel\", ignoreCase = true) == true) {\n        showMessage(\"Payment cancelled.\")\n    } else {\n        showMessage(\"Payment was not completed. Please try again.\")\n    }\n}\n\nconfig.onSubmitError = { submitResult ->\n    val failed = submitResult as? FailedSubmitResult\n    Log.e(\"Paze\", \"Submit error: ${failed?.errorCode} ${failed?.errorReason}\")\n    showMessage(\"Payment could not be processed. Please try another method.\")\n}\n","lang":"kotlin"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"logging-for-support","__idx":5},"children":["Logging for support"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Include these fields when logging errors for PXP or Paze support:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"kotlin","header":{"controls":{"copy":{}}},"source":"fun logPazeError(error: BaseSdkException, context: Map<String, Any> = emptyMap()) {\n    val payload = buildMap {\n        put(\"errorCode\", error.errorCode)\n        put(\"errorMessage\", error.message ?: \"\")\n        put(\"timestamp\", Instant.now().toString())\n        putAll(context)\n    }\n    // Send to your logging or crash reporting service\n    Log.e(\"Paze\", \"Support log: $payload\")\n}\n","lang":"kotlin"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"portal-and-session-setup","__idx":6},"children":["Portal and session setup"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Use this section when Paze is not appearing in the Unity Portal, missing from your session response, or failing during presentment with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SDK1202"]},". For portal setup steps, see ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/guides/checkout/components/android/paze/onboarding"},"children":["Onboarding"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"paze-service-not-visible-on-site","__idx":7},"children":["Paze service not visible on site"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Symptom:"]}," The Paze service doesn't appear in your site's Services tab."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Solution:"]}," Enable Paze at the merchant group level first (",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/guides/checkout/components/android/paze/onboarding#step-1-ensure-paze-is-enabled-at-the-merchant-group-level"},"children":["Onboarding, Step 1"]},"), then return to the site configuration."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"missing-client-id-in-session","__idx":8},"children":["Missing client ID in session"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Symptom:"]}," Session response doesn't include ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["allowedFundingTypes.wallets.paze.clientId"]},"."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Solution:"]}]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Verify the client ID is saved in ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Paze Account Settings"]}," for the correct site."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Create a new session after saving portal changes."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Confirm you are using the correct site name in your session request."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"sdk1202-at-presentment","__idx":9},"children":["SDK1202 at presentment"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Symptom:"]}," Presentment fails with missing ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["clientId"]},"."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Solution:"]}," Confirm ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["clientId"]}," is in the session response from your backend and passed through ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SessionConfig"]}," when initialising the SDK. Re-create the session after saving portal changes. Non-USD currency surfaces separately as ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SDK1213"]},"; invalid identity fields surface as ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SDK1210"]}," or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SDK1212"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"troubleshooting-common-issues","__idx":10},"children":["Troubleshooting common issues"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"paze-button-hidden-or-validation-errors-at-presentment","__idx":11},"children":["Paze button hidden or validation errors at presentment"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The symptoms of this are:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onPresentmentResolved(false)"]}," fires alongside ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onError"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The button is hidden in your Compose UI after you render ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Content()"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Checkout fails immediately on tap when presentment succeeded but checkout-time validation fails."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"diagnostic-steps","__idx":12},"children":["Diagnostic steps"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Log session and component configuration when presentment fails:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"kotlin","header":{"controls":{"copy":{}}},"source":"fun diagnosePazePresentment(sdkConfig: PxpSdkConfig, config: PazeButtonComponentConfig) {\n    Log.d(\"Paze\", \"=== Presentment Diagnostics ===\")\n    val paze = sdkConfig.session.allowedFundingTypes?.wallets?.paze\n    Log.d(\"Paze\", \"Client ID: ${if (paze?.clientId.isNullOrBlank()) \"Missing\" else \"Present\"}\")\n    Log.d(\"Paze\", \"MCC: ${paze?.merchantCategoryCode ?: \"Not set\"}\")\n    Log.d(\"Paze\", \"Currency: ${sdkConfig.transactionData.currency}\")\n    Log.d(\"Paze\", \"Email: ${config.emailAddress ?: \"Not set\"}\")\n    Log.d(\"Paze\", \"Phone: ${config.phoneNumber ?: \"Not set\"}\")\n}\n","lang":"kotlin"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"common-causes","__idx":13},"children":["Common causes"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["These presentment and checkout validation issues map to the most frequent error codes:"]},{"$$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":"Cause"},"children":["Cause"]},{"$$mdtype":"Tag","name":"th","attributes":{"align":"left","data-label":"Error code"},"children":["Error code"]},{"$$mdtype":"Tag","name":"th","attributes":{"align":"left","data-label":"Solution"},"children":["Solution"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Missing ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["clientId"]}," in session"]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SDK1202"]}]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Configure Paze Account Settings and re-create session"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Non-USD currency"]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SDK1213"]}]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Set ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transactionData.currency"]}," to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["\"USD\""]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Invalid email or phone"]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SDK1210"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SDK1212"]}]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Fix format; see ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/guides/checkout/components/android/paze/data-validation#identity-validation-rules"},"children":["Data validation"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["clientName"]}," or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["siteName"]}," too long when set"]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SDK1203"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SDK1204"]}]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Shorten to 50 characters or fewer"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Statement descriptor too long when set"]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SDK1205"]}]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Shorten ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["paymentDescription"]}," to 25 characters or fewer"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Amount ≤ 0 at checkout"]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SDK1229"]}]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Set a positive ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transactionData.amount"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Invalid shipping country codes"]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SDK1231"]}]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Use valid ISO 3166-1 alpha-2 codes (for example ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["US"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CA"]},"); usually returned at create-session"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Empty cobrand name"]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SDK1232"]}]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Set a non-empty ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["cobrandName"]}," on every ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PazeCobrandConfig"]}," entry; usually returned at create-session"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["No Custom Tab browser"]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onPresentmentResolved(false)"]}," with button visible"]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Install Chrome or another Custom Tabs-compatible browser"]}]}]}]}]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"info"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["When presentment succeeds but no Custom Tabs-compatible browser is installed, the button remains visible and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onPresentmentResolved(false)"]}," fires. Use the callback to show warnings or fallback payment methods."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"checkout-fails-or-gets-cancelled","__idx":14},"children":["Checkout fails or gets cancelled"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The symptoms of this are:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The shopper taps the Paze button but checkout doesn't complete."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onCheckoutIncomplete"]}," fires unexpectedly."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The Custom Tab opens but the shopper cannot complete payment."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"solutions","__idx":15},"children":["Solutions"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Currency validation:"]}," Confirm ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transactionData.currency"]}," is ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["\"USD\""]}," before showing the Paze section."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["User cancellation:"]}," When the shopper closes the Custom Tab, expect ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onCheckoutIncomplete"]},":"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"kotlin","header":{"controls":{"copy":{}}},"source":"config.onCheckoutIncomplete = { result ->\n    if (result.reason?.contains(\"cancel\", ignoreCase = true) == true) {\n        showMessage(\"Payment cancelled. You can try again when ready.\")\n    } else {\n        showMessage(\"Unable to complete checkout. Please try a different payment method.\")\n    }\n}\n","lang":"kotlin"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Tab closed without redirect:"]}," If the shopper dismisses the Custom Tab without a redirect callback, ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onCheckoutIncomplete"]}," fires when the host Activity resumes."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Merchant rejection:"]}," Returning ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["false"]}," from ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onCheckoutComplete"]}," triggers ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onCheckoutIncomplete"]},"."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Pre-checkout block:"]}," Disable the button in your UI until prerequisites are met. ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onPazeButtonClicked"]}," cannot cancel checkout — the SDK opens the Custom Tab when that callback completes."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["UAT wallet access:"]}," In UAT, confirm the test shopper email or phone is provisioned for your Paze merchant account."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"app-doesnt-return-from-checkout","__idx":16},"children":["App doesn't return from checkout"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The symptoms of this are:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The Paze Custom Tab completes but your app doesn't process the result."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Checkout hangs after the shopper finishes in the browser."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onCheckoutComplete"]}," never fires."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"diagnostic-steps-1","__idx":17},"children":["Diagnostic steps"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Verify your host Activity handles redirects:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"kotlin","header":{"controls":{"copy":{}}},"source":"import com.pxp.checkout.components.paze.payment.deliverPazeCheckoutResult\n\noverride fun onNewIntent(intent: Intent) {\n    super.onNewIntent(intent)\n    setIntent(intent)\n    intent.deliverPazeCheckoutResult(pazeButton)\n}\n","lang":"kotlin"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Confirm checkout was launched from an Activity context so ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PazeRedirectRegistry"]}," could register the host."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Common redirect handling issues and fixes:"]},{"$$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":"Issue"},"children":["Issue"]},{"$$mdtype":"Tag","name":"th","attributes":{"align":"left","data-label":"Solution"},"children":["Solution"]}]}]},{"$$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":["onNewIntent"]}," not implemented"]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Add ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["deliverPazeCheckoutResult"]}," handler"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["setIntent(intent)"]}," omitted"]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Call ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["setIntent"]}," before delivering the result"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Non-Activity context"]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Create ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PxpCheckout"]}," with an Activity ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Context"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Custom scheme mismatch"]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Register custom scheme via ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PazeRedirectRegistry"]}," and matching intent filter"]}]}]}]}]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"warning"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The default ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["pxpcheckout://callback"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["pxpcheckout://paze"]}," schemes are handled by the SDK-merged ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PazeSdkRedirectActivity"]},". Your host Activity still must receive the forwarded intent and call ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["deliverPazeCheckoutResult"]},"."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"complete-or-mcc-errors","__idx":18},"children":["Complete or MCC errors"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The symptoms of this are:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Checkout completes but the flow fails before decryption."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onError"]}," fires with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SDK1202A"]},"."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Solution:"]}," Include ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["merchantCategoryCode"]}," in the session response from your backend. The SDK requires it when building the Paze complete request."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"token-decryption-fails","__idx":19},"children":["Token decryption fails"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The symptoms of this are:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Checkout completes but payment doesn't process."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onPostDecryption"]}," never fires."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onError"]}," fires with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SDK1233"]},"."]}]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"info"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onPostDecryption"]}," does not run when ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onPreDecryption"]}," returns ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["false"]}," (merchant-managed decryption). That is expected — 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/events#oncomplete"},"children":["Events"]},"."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"solutions-1","__idx":20},"children":["Solutions"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Common decryption failure causes:"]},{"$$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":"Cause"},"children":["Cause"]},{"$$mdtype":"Tag","name":"th","attributes":{"align":"left","data-label":"Solution"},"children":["Solution"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Invalid or expired session"]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Create a fresh session and retry."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["securedPayload"]}," missing"]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Check complete response; verify Paze wallet settings in the Unity Portal."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Manual decryption path"]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Return ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["false"]}," from ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onPreDecryption"]}," and decrypt in ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onComplete"]},"; ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onPostDecryption"]}," is skipped by design"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Manual decryption misconfigured"]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Ensure ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onPreDecryption"]}," returns ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["false"]}," and backend decrypts the payload from ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onComplete"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Network error during decrypt"]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Retry; check device connectivity."]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Decryption failures surface through ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onError"]}," with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SDK1233"]},". See ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/guides/checkout/components/android/paze/analytics"},"children":["Analytics"]}," for ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PazeDecryptionFailed"]}," events."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"authorisation-fails-after-decryption","__idx":21},"children":["Authorisation fails after decryption"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The symptoms of this are:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onSubmitError"]}," fires with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["FailedSubmitResult"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onPostAuthorisation"]}," may still fire with transaction IDs when Unity returns an error state and the callback is registered — always verify the outcome on your backend."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"solutions-2","__idx":22},"children":["Solutions"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Log submission failures with correlation IDs for support:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"kotlin","header":{"controls":{"copy":{}}},"source":"config.onSubmitError = { result ->\n    val failed = result as? FailedSubmitResult\n    Log.e(\"Paze\", \"Submit failed: ${failed?.errorCode} ${failed?.errorReason}\")\n    Log.e(\"Paze\", \"Correlation ID: ${failed?.correlationId}\")\n}\n","lang":"kotlin"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Common authorisation submission failure causes:"]},{"$$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":"Cause"},"children":["Cause"]},{"$$mdtype":"Tag","name":"th","attributes":{"align":"left","data-label":"Solution"},"children":["Solution"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Missing shopper data"]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Implement ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onGetShopper"]}," on ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PxpSdkConfig"]}," with a valid shopper ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["id"]},", or set ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transactionData.shopper"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Invalid Kount data"]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Fix ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["riskScreeningData"]}," in ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onPreAuthorisation"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Transaction declined"]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Check PXP transaction response; verify amount and merchant setup"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Missing ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["entryType"]}]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Set ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transactionData.entryType"]}," to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["EntryType.Ecom"]}," when initialising the SDK. The standalone button does not validate this at presentment"]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Hard submission failures surface through ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onSubmitError"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"onpostauthorisation-behaviour","__idx":23},"children":["onPostAuthorisation behaviour"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Symptom:"]}," You expected a successful payment but the transaction outcome is unclear, or the callback did not run."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Solution:"]}," Register ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onPostAuthorisation"]}," on the component config — the SDK only invokes it when the callback is set. The SDK calls it when it 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"]},". It does not run on the merchant-managed decryption path (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onPreDecryption"]}," returns ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["false"]},"). Verify the payment outcome on your backend — Unity may return an error state while still providing transaction identifiers. Hard submission failures route to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onSubmitError"]}," instead."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"kotlin","header":{"controls":{"copy":{}}},"source":"config.onPostAuthorisation = { result ->\n    verifyPaymentOnBackend(result.systemTransactionId)\n}\n","lang":"kotlin"},"children":[]}]},"headings":[{"value":"Troubleshooting","id":"troubleshooting","depth":1},{"value":"Exception types and error codes","id":"exception-types-and-error-codes","depth":2},{"value":"Component exceptions","id":"component-exceptions","depth":3},{"value":"Error handling best practices","id":"error-handling-best-practices","depth":2},{"value":"Comprehensive error handler","id":"comprehensive-error-handler","depth":3},{"value":"Logging for support","id":"logging-for-support","depth":3},{"value":"Portal and session setup","id":"portal-and-session-setup","depth":2},{"value":"Paze service not visible on site","id":"paze-service-not-visible-on-site","depth":3},{"value":"Missing client ID in session","id":"missing-client-id-in-session","depth":3},{"value":"SDK1202 at presentment","id":"sdk1202-at-presentment","depth":3},{"value":"Troubleshooting common issues","id":"troubleshooting-common-issues","depth":2},{"value":"Paze button hidden or validation errors at presentment","id":"paze-button-hidden-or-validation-errors-at-presentment","depth":3},{"value":"Diagnostic steps","id":"diagnostic-steps","depth":4},{"value":"Common causes","id":"common-causes","depth":4},{"value":"Checkout fails or gets cancelled","id":"checkout-fails-or-gets-cancelled","depth":3},{"value":"Solutions","id":"solutions","depth":4},{"value":"App doesn't return from checkout","id":"app-doesnt-return-from-checkout","depth":3},{"value":"Diagnostic steps","id":"diagnostic-steps-1","depth":4},{"value":"Complete or MCC errors","id":"complete-or-mcc-errors","depth":3},{"value":"Token decryption fails","id":"token-decryption-fails","depth":3},{"value":"Solutions","id":"solutions-1","depth":4},{"value":"Authorisation fails after decryption","id":"authorisation-fails-after-decryption","depth":3},{"value":"Solutions","id":"solutions-2","depth":4},{"value":"onPostAuthorisation behaviour","id":"onpostauthorisation-behaviour","depth":3}],"frontmatter":{"seo":{"title":"Troubleshooting"}},"lastModified":"2026-07-01T15:11:56.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/guides/checkout/components/android/paze/troubleshooting","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}