{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-guides/sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":["sub-heading","br","details","admonition","required"]},"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 iOS."]}]},{"$$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":["clientId"]},"), USD transaction data on ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CheckoutConfig"]},", and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["merchantCategoryCode"]}," in ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["session.allowedFundingTypes.wallets.paze"]}," for the complete step on iOS. Configure ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CheckoutConfig"]},", initialise ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PxpCheckout"]},", then create the component:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"swift","header":{"controls":{"copy":{}}},"source":"let checkoutConfig = CheckoutConfig(\n    environment: .test,\n    session: sessionData, // allowedFundingTypes.wallets.paze.clientId + merchantCategoryCode\n    transactionData: transactionData, // currency must be \"USD\"\n    merchantShopperId: \"shopper-123\",\n    ownerId: \"owner-456\",\n    clientName: \"Your Merchant\",\n    siteName: \"Your Store\"\n)\n\nlet pxpCheckout = try PxpCheckout.initialize(config: checkoutConfig)\n\nlet config = PazeButtonComponentConfig()\nconfig.emailAddress = \"customer@example.com\"\n\nlet pazeButton = try pxpCheckout.create(.pazeButton, componentConfig: config)\n","lang":"swift"},"children":[]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"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 at presentment and again at checkout (max 128 characters, RFC 5322 format). Passed to Paze during session creation when provided."]}]},{"$$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"]},"). Max 15 characters. Passed to Paze when provided."]}]}]}]}]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"info"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The iOS component uses static presentment where the button is shown after SDK validation. The optional ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["emailAddress"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["phoneNumber"]}," properties are passed to Paze during session creation when provided. ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["merchantCategoryCode"]}," is configured on the session, not the button component, but is required for the complete step on iOS."]}]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"info"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The SDK opens the Paze web checkout in ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ASWebAuthenticationSession"]},", and by default decrypts tokens and submits transactions. We also recommend implementing ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onGetShopper"]}," on ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CheckoutConfig"]}," when calling ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PxpCheckout.initialize(config:)"]}," to supply shopper data when the SDK submits the transaction."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"advanced-configuration","__idx":3},"children":["Advanced configuration"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"swift","header":{"controls":{"copy":{}}},"source":"let config = PazeButtonComponentConfig()\nconfig.emailAddress = \"customer@example.com\"\nconfig.phoneNumber = \"15551234567\"\nconfig.paymentDescription = \"Order #12345\"\nconfig.billingPreference = .all\nconfig.acceptedPaymentCardNetworks = [.visa, .mastercard]\nconfig.cobrand = [PazeCobrandConfig(cobrandName: \"Rewards Plus\", benefitsOffered: true)]\nconfig.performAVS = true\nconfig.style = PazeButtonStyleConfig(\n    color: .pazeBlue,\n    shape: .pill,\n    label: .checkoutWith\n)\n\nconfig.onInit = { print(\"Paze initialised\") }\nconfig.onPresentmentResolved = { isVisible in print(\"Button visible:\", isVisible) }\nconfig.onCheckoutComplete = { _ async in true }\nconfig.onPreDecryption = { async in true }\nconfig.onPostDecryption = { payload async in print(payload.fundingData.cardNetwork) }\nconfig.onPostAuthorisation = { data async in print(data.systemTransactionId) }\n\nlet pazeButton = try pxpCheckout.create(.pazeButton, componentConfig: config)\n","lang":"swift"},"children":[]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"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 for Paze checkout. Validated at presentment and again at checkout. Passed to Paze during session creation when provided."]}]},{"$$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":["+"]},". Max 15 characters. Passed to Paze when provided."]}]},{"$$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":["Statement descriptor forwarded to Paze. Maximum 25 characters. Validated during presentment initialisation."]}]},{"$$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":["nil"]},", defaults to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":[".all"]}," internally.",{"$$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":[".zipCountry"]}]},{"$$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":["confirmLaunch"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Bool?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["When ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["true"]},", Paze may prompt before launching checkout."]}]},{"$$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 ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CheckoutConfig.session.sessionId"]}," when not set."]}]},{"$$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":["[String]?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The list of accepted shipping countries, in ISO 3166-1 alpha-2 format (e.g. ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["\"US\""]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["\"CA\""]},"). Each code must be exactly two uppercase letters. Validated at checkout time."]}]},{"$$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":["[PazeAcceptedPaymentCardNetwork]?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The list of accepted card networks. When all three are selected or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["nil"]},", no filter is sent.",{"$$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":["[PazeCobrandConfig]?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Optional cobrand entries for partner branding in the Paze wallet. Each entry requires ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["cobrandName"]},". See ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"#pazecobrandconfig"},"children":["PazeCobrandConfig"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["enhancedTransactionData"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["PazeEnhancedTransactionDataConfig?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Optional checkout metadata forwarded to Paze. See ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"#enhanced-transaction-data"},"children":["Enhanced transaction data"]},"."]}]},{"$$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":["nil"]},", uses ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PazeButtonStyleConfig()"]}," defaults (auto colour, rounded shape, checkout-with label). 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":["Bool?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["When ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["true"]},", includes billing address from decrypted payload in AVS fields when the SDK submits the transaction. Defaults to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["false"]},". For manual backend decryption, apply AVS on your transaction request instead."]}]}]}]}]},{"$$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":["CheckoutConfig"]}," when calling ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PxpCheckout.initialize(config:)"]},", not on the button component. ",{"$$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":"Heading","attributes":{"level":2,"id":"enhanced-transaction-data","__idx":4},"children":["Enhanced transaction data"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["enhancedTransactionData"]}," is optional metadata forwarded to Paze during checkout and complete. Use it when Paze or your merchant agreement requires additional order context."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"swift","header":{"controls":{"copy":{}}},"source":"config.enhancedTransactionData = PazeEnhancedTransactionDataConfig(\n    ecomData: PazeEnhancedTransactionDataConfig.EcomData(\n        cartContainsGiftCard: false,\n        orderForPickup: false,\n        orderQuantity: \"2\",\n        orderHighestCost: \"49.99\",\n        finalShippingAddress: PazeAddressConfig(\n            line1: \"123 Main St\",\n            city: \"New York\",\n            state: \"NY\",\n            zip: \"10001\",\n            countryCode: \"US\"\n        )\n    ),\n    processingNetwork: [.visa, .mastercard]\n)\n","lang":"swift"},"children":[]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"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":["ecomData.cartContainsGiftCard"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Bool?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Whether the cart contains a gift card."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ecomData.orderForPickup"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Bool?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Whether the order is for in-store or curbside pickup."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ecomData.orderQuantity"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Order item count as a string."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ecomData.orderHighestCost"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Highest line-item cost as a string."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ecomData.finalShippingAddress"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["PazeAddressConfig?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Optional shipping address. When set, required address fields must be provided. See ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"#pazeaddressconfig"},"children":["PazeAddressConfig"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["processingNetwork"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["[PazeAcceptedPaymentCardNetwork]?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Preferred card networks: ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":[".visa"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":[".mastercard"]},", or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":[".discover"]},"."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"pazeaddressconfig","__idx":5},"children":["PazeAddressConfig"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Used for ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ecomData.finalShippingAddress"]},":"]},{"$$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":["name"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Recipient or address name."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["line1"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Required","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Primary address line."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["line2"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Secondary address line."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["city"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Required","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["City."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["state"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Required","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["State or region."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["zip"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Required","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Postal or ZIP code."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["countryCode"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Required","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["ISO 3166-1 alpha-2 country code."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"styling","__idx":6},"children":["Styling"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The component renders native Paze button artwork. Use ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PazeButtonStyleConfig"]}," to configure official Paze button attributes. When ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["style"]}," isn't set on the component config, the SDK uses ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PazeButtonStyleConfig()"]}," defaults:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"swift","header":{"controls":{"copy":{}}},"source":"config.style = PazeButtonStyleConfig(\n    color: .pazeBlue,\n    shape: .pill,\n    label: .checkoutWith,\n    disableMaxHeight: false\n)\n","lang":"swift"},"children":[]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"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":["enum"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Button colour theme.",{"$$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 — adapts to light/dark mode)"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":[".pazeBlue"]}]},{"$$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":[".whiteWithOutline"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":[".midnightBlack"]}]}]}]}]},{"$$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":["enum"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["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":[".rounded"]}," (default)"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":[".rectangle"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":[".pill"]}]}]}]}]},{"$$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":["enum"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Button label artwork.",{"$$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":[".checkoutWith"]}]},{"$$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":[".pazeCheckout"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":[".donateWith"]}]}]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["disableMaxHeight"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Bool?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["When ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["true"]},", removes the default 48pt height cap so the button can expand vertically."]}]}]}]}]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"warning"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Don't override the Paze button with custom styling or overlays that alter its appearance. 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/ios/paze/compliance"},"children":["Compliance"]},"."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"event-handling","__idx":7},"children":["Event handling"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"swift","header":{"controls":{"copy":{}}},"source":"config.onInit = { }\nconfig.onPresentmentResolved = { isVisible in }\nconfig.onPazeButtonClicked = { async in }\nconfig.onCheckoutComplete = { _ async in true }\nconfig.onCheckoutIncomplete = { _ async in }\nconfig.onComplete = { result async in }\nconfig.onPreDecryption = { async in true }\nconfig.onPostDecryption = { decryptedPayload async in }\nconfig.onPreAuthorisation = { async in .proceed }\nconfig.onPostAuthorisation = { data async in }\nconfig.onSubmitError = { submitError async in }\nconfig.onError = { error in }\n","lang":"swift"},"children":[]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"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":["() -> Void"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Called after presentment validation succeeds for this component."]}]},{"$$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":["(Bool) -> Void"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Called when presentment resolves. ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["true"]}," when the button is shown, ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["false"]}," when validation failed (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":["() async -> Void"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Called when the button is tapped, before checkout starts. Use for pre-checkout logic."]}]},{"$$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":["(PazeCheckoutResult) async -> Bool"]}]},{"$$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 to complete, 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":["(PazeCheckoutResult) async -> Void"]}]},{"$$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":["(PazeCompleteResult) async -> Void"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Called when the complete API succeeds and the response is decoded, before decryption and authorisation. Use ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["result.completeDecodedResponse?.securedPayload"]}," for manual decryption workflows."]}]},{"$$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":["() async -> Bool"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Called after ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onComplete"]},", before SDK decryption. Return ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["true"]}," to allow SDK decryption, or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["false"]}," for manual 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":["(PazeDecryptTokenResponseSuccess) async -> Void"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Called after the SDK decrypts the secured payload."]}]},{"$$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":["() async -> 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":["(MerchantSubmitResult) async -> Void"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Called when the SDK receives a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["MerchantSubmitResult"]},", immediately before your callback runs. Verify the transaction outcome on your backend — the response may report an error state while still returning transaction identifiers."]}]},{"$$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":["(BaseSubmitResult) async -> Void"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Called when authorisation submission fails and the SDK receives a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["FailedSubmitResult"]},"."]}]},{"$$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) -> Void"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Called on presentment, checkout, complete, or decryption errors. Shopper cancellation is surfaced through ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onCheckoutIncomplete"]},", not ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onError"]},"."]}]}]}]}]},{"$$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/ios/paze/events"},"children":["Events"]},"."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"decryption-flow","__idx":8},"children":["Decryption flow"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"sdk-managed-decryption-recommended","__idx":9},"children":["SDK-managed decryption (recommended)"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["By default, the SDK decrypts the secured payload after complete. The callback order is ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onComplete"]}," → ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onPreDecryption"]}," → ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onPostDecryption"]}," → ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onPreAuthorisation"]}," → ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onPostAuthorisation"]},":"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"swift","header":{"controls":{"copy":{}}},"source":"config.onCheckoutComplete = { _ async in true }\n\nconfig.onPreDecryption = { async in true }\n\nconfig.onPostDecryption = { decryptedPayload async in\n    print(\"Card network:\", decryptedPayload.fundingData.cardNetwork)\n}\n\nconfig.onPostAuthorisation = { data async in\n    print(\"Transaction ID:\", data.systemTransactionId)\n    await verifyPaymentOnBackend(systemTransactionId: data.systemTransactionId)\n}\n","lang":"swift"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"manual-decryption-flow","__idx":10},"children":["Manual decryption flow"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Return ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["false"]}," from ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onPreDecryption"]}," to handle decryption on your backend:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"swift","header":{"controls":{"copy":{}}},"source":"config.onCheckoutComplete = { _ async in true }\n\nconfig.onPreDecryption = { async in false }\n\nconfig.onComplete = { result async in\n    guard let securedPayload = result.completeDecodedResponse?.securedPayload else { return }\n    await sendToBackendForDecryption(securedPayload: securedPayload)\n}\n","lang":"swift"},"children":[]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"warning"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["When using manual decryption, you are responsible for calling the PXP ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["decrypt-token"]}," endpoint and submitting the transaction from your backend. See ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/guides/checkout/components/ios/paze/implementation#backend-decryption"},"children":["Backend decryption"]}," for the full API reference."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"fraud-detection-integration","__idx":11},"children":["Fraud detection integration"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"address-verification-avs","__idx":12},"children":["Address verification (AVS)"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Set ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["performAVS"]}," to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["true"]}," to include billing address from the decrypted payload in the transaction request when the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["SDK submits the transaction"]},":"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"swift","header":{"controls":{"copy":{}}},"source":"config.billingPreference = .all\nconfig.performAVS = true\n","lang":"swift"},"children":[]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"info"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["If you enable ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["performAVS"]},", set ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["billingPreference"]}," to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":[".all"]}," so the Paze checkout returns a billing address for AVS. This applies only when the SDK manages decryption and authorisation. If you return ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["false"]}," from ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onPreDecryption"]},", add ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["addressVerification"]}," to your backend transaction request using the billing address from the decrypt response."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"kount-risk-screening","__idx":13},"children":["Kount risk screening"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Pass risk screening data through ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onPreAuthorisation"]},". Disable Kount device fingerprinting with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["kountDisabled: true"]}," on ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CheckoutConfig"]}," when calling ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PxpCheckout.initialize(config:)"]},":"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"swift","header":{"controls":{"copy":{}}},"source":"let checkoutConfig = CheckoutConfig(\n    environment: .test,\n    session: sessionData,\n    transactionData: transactionData,\n    merchantShopperId: \"shopper-123\",\n    ownerId: \"owner-456\",\n    kountDisabled: false, // Set to true to disable Kount\n    onGetShopper: { async in\n        TransactionShopper(id: \"shopper-123\", email: \"customer@example.com\")\n    }\n)\n\nlet pxpCheckout = try PxpCheckout.initialize(config: checkoutConfig)\n\nconfig.onPreAuthorisation = { async in\n    return .transactionInitData(PazeTransactionInitData(\n        riskScreeningData: RiskScreeningData(\n            performRiskScreening: true,\n            userIp: \"192.168.1.100\",\n            account: RiskScreeningAccount(\n                id: \"shopper-123\",\n                creationDateTime: ISO8601DateFormatter().date(from: \"2024-01-15T10:30:00Z\")\n            )\n        )\n    ))\n}\n","lang":"swift"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"displaying-the-component","__idx":14},"children":["Displaying the component"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Render the Paze button in your SwiftUI view hierarchy with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["buildContent()"]},":"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"swift","header":{"controls":{"copy":{}}},"source":"if let pazeButton {\n    pazeButton.buildContent()\n        .frame(maxWidth: .infinity)\n}\n","lang":"swift"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Presentment initialises automatically when the component view appears. When the view disappears, internal state is cleaned up — no manual unmount call is required."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"examples","__idx":15},"children":["Examples"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"basic-checkout-button","__idx":16},"children":["Basic checkout button"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"swift","header":{"controls":{"copy":{}}},"source":"let config = PazeButtonComponentConfig()\nconfig.emailAddress = \"customer@example.com\"\n\nconfig.onCheckoutComplete = { _ async in true }\n\nconfig.onPostAuthorisation = { data async in\n    await verifyPaymentOnBackend(systemTransactionId: data.systemTransactionId)\n    navigateToOrderConfirmation()\n}\n\nconfig.onError = { error in\n    print(\"Paze error:\", error.errorCode, error.errorMessage)\n    showError(\"Payment error. Please try again.\")\n}\n\nlet pazeButton = try pxpCheckout.create(.pazeButton, componentConfig: config)\n","lang":"swift"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"donation-flow","__idx":17},"children":["Donation flow"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"swift","header":{"controls":{"copy":{}}},"source":"config.style = PazeButtonStyleConfig(\n    color: .midnightBlack,\n    shape: .rounded,\n    label: .donateWith\n)\nconfig.paymentDescription = \"Charity donation\"\n","lang":"swift"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"enterprise-payment-with-fraud-detection","__idx":18},"children":["Enterprise payment with fraud detection"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"swift","header":{"controls":{"copy":{}}},"source":"let config = PazeButtonComponentConfig()\nconfig.emailAddress = \"customer@example.com\"\nconfig.phoneNumber = \"15551234567\"\nconfig.billingPreference = .all\nconfig.acceptedPaymentCardNetworks = [.visa, .mastercard]\nconfig.performAVS = true\nconfig.style = PazeButtonStyleConfig(color: .pazeBlue, shape: .pill, label: .checkoutWith)\n\nconfig.onCheckoutComplete = { result async in\n    return await validateOrderOnBackend(result: result)\n}\n\nconfig.onPreAuthorisation = { async in\n    return .transactionInitData(PazeTransactionInitData(\n        riskScreeningData: buildRiskScreeningData()\n    ))\n}\n\nconfig.onPostAuthorisation = { data async in\n    await verifyPaymentOnBackend(systemTransactionId: data.systemTransactionId)\n    navigateToSuccess(merchantTransactionId: data.merchantTransactionId)\n}\n\nconfig.onSubmitError = { submitError async in\n    if let failed = submitError as? FailedSubmitResult {\n        showError(\"Payment failed: \\(failed.errorReason ?? \"\")\")\n    }\n}\n","lang":"swift"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"configuration-types","__idx":19},"children":["Configuration types"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"pazebuttoncomponentconfig","__idx":20},"children":["PazeButtonComponentConfig"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PazeButtonComponentConfig"]}," extends ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["BaseComponentConfig"]}," and exposes the properties and callbacks listed above. Configure properties and callbacks on a single instance before passing it to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["create(.pazeButton, componentConfig:)"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"pazebuttonstyleconfig","__idx":21},"children":["PazeButtonStyleConfig"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"swift","header":{"controls":{"copy":{}}},"source":"struct PazeButtonStyleConfig {\n    var color: PazeButtonColor       // .auto, .pazeBlue, .white, .whiteWithOutline, .midnightBlack\n    var shape: PazeButtonShape       // .rounded, .rectangle, .pill\n    var disableMaxHeight: Bool?\n    var label: PazeButtonLabel       // .checkoutWith, .checkout, .pazeCheckout, .donateWith\n}\n","lang":"swift"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"pazecobrandconfig","__idx":22},"children":["PazeCobrandConfig"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Each cobrand entry in ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["cobrand"]}," uses:"]},{"$$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":["cobrandName"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Required","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Cobrand program name. Must be non-empty."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["benefitsOffered"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Bool?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Whether cobrand benefits are offered for this program."]}]}]}]}]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"swift","header":{"controls":{"copy":{}}},"source":"struct PazeCobrandConfig {\n    var cobrandName: String\n    var benefitsOffered: Bool?\n}\n","lang":"swift"},"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":"Enhanced transaction data","id":"enhanced-transaction-data","depth":2},{"value":"PazeAddressConfig","id":"pazeaddressconfig","depth":3},{"value":"Styling","id":"styling","depth":2},{"value":"Event handling","id":"event-handling","depth":2},{"value":"Decryption flow","id":"decryption-flow","depth":2},{"value":"SDK-managed decryption (recommended)","id":"sdk-managed-decryption-recommended","depth":3},{"value":"Manual decryption flow","id":"manual-decryption-flow","depth":3},{"value":"Fraud detection integration","id":"fraud-detection-integration","depth":2},{"value":"Address verification (AVS)","id":"address-verification-avs","depth":3},{"value":"Kount risk screening","id":"kount-risk-screening","depth":3},{"value":"Displaying the component","id":"displaying-the-component","depth":2},{"value":"Examples","id":"examples","depth":2},{"value":"Basic checkout button","id":"basic-checkout-button","depth":3},{"value":"Donation flow","id":"donation-flow","depth":3},{"value":"Enterprise payment with fraud detection","id":"enterprise-payment-with-fraud-detection","depth":3},{"value":"Configuration types","id":"configuration-types","depth":2},{"value":"PazeButtonComponentConfig","id":"pazebuttoncomponentconfig","depth":3},{"value":"PazeButtonStyleConfig","id":"pazebuttonstyleconfig","depth":3},{"value":"PazeCobrandConfig","id":"pazecobrandconfig","depth":3}],"frontmatter":{"seo":{"title":"Configuration"}},"lastModified":"2026-06-30T10:00:28.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/guides/checkout/components/ios/paze/configuration","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}