{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-guides/sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":["sub-heading","tabs","tab","yes","no","details","br","admonition"]},"type":"markdown"},"seo":{"title":"Events","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":"events","__idx":0},"children":["Events"]},{"$$mdtype":"Tag","name":"SubHeading","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Implement callbacks to customise your payment flow."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"overview","__idx":1},"children":["Overview"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Components emit events and provide callback interfaces based on user interaction or validation. You can use these to implement callback functions, which allow you to inject your own business logic and user experience customisations into the payment flow at critical moments. They ensure that while the SDK handles the complex technical aspects of payment processing, you retain full control over the customer experience and can seamlessly integrate payments into your broader business workflows and systems."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Callbacks enable you to:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Validate business rules before payments proceed."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Display custom error, failure, or success messages."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Tailor user interfaces to match your brand's look and feel."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Integrate with your own systems for fraud detection or customer management."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Control exactly how your customers experience both successful and failed transactions."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["All events are optional and can be mixed and matched based on your business needs."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"supported-events","__idx":2},"children":["Supported events"]},{"$$mdtype":"Tag","name":"Tabs","attributes":{"size":"medium"},"children":[{"$$mdtype":"Tag","name":"div","attributes":{"label":"Pre-built components","disable":false},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The following table lists all events supported by the different pre-built components."]},{"$$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":"Event"},"children":["Event"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Billing address"},"children":["Billing address"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Card-on-file"},"children":["Card-on-file"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Click-once"},"children":["Click-once"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"New card"},"children":["New card"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onAddressChanged"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"Yes","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onBlur"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"Yes","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"Yes","attributes":{},"children":[]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onCardBrandCannotRecognised"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"Yes","attributes":{},"children":[]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onCardBrandDetected"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"Yes","attributes":{},"children":[]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onCardDetected"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"Yes","attributes":{},"children":[]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onCardFlipped"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"Yes","attributes":{},"children":[]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onCardInteraction"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"Yes","attributes":{},"children":[]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onChange"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"Yes","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"Yes","attributes":{},"children":[]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onClick"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onConsentChanged"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"Yes","attributes":{},"children":[]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onCountryDeselected"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"Yes","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onCountrySelected"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"Yes","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onCollectEnd"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onCollectStart"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onCvcEntered"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"Yes","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onCustomValidation"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onDeleteTokenFailed"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"Yes","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onDeleteTokenSuccess"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"Yes","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onFocus"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"Yes","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"Yes","attributes":{},"children":[]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onGetFingerprintResult"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onImageError"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"Yes","attributes":{},"children":[]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onImageLoaded"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"Yes","attributes":{},"children":[]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onOnceCardClick"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"Yes","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"Yes","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onPostAuthentication"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onPostAuthorisation"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onPostInitiateAuthentication"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onPostTokenisation"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"Yes","attributes":{},"children":[]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onPreAuthentication"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onPreAuthorisation"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onPreDeleteToken"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"Yes","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onPreInitiateAuthentication"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onPreRenderTokens"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"Yes","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onPreTokenisation"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onPrivacyClicked"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"Yes","attributes":{},"children":[]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onRetrieveTokensFailed"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"Yes","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onStartSubmit"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onStateChanged"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"Yes","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onSubmitError"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onSyncComplete"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"Yes","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onTermsClicked"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"Yes","attributes":{},"children":[]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onTriggerFieldValidation"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"Yes","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onUpdateTokenFailed"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"Yes","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onUpdateTokenSuccess"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"Yes","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onValidation"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"Yes","attributes":{},"children":[]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onValidationPassed"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"Yes","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onValidationFailed"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"Yes","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["tokenItemBuilder"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"Yes","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["tokenLabelBuilder"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"Yes","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]}]}]}]}]}]},{"$$mdtype":"Tag","name":"div","attributes":{"label":"Standalone components","disable":false},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The following table lists all events supported by the different standalone components."]},{"$$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":"Event"},"children":["Event"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Billing address input fields"},"children":["Billing address input fields"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Card input fields"},"children":["Card input fields"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Card submit"},"children":["Card submit"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Country selection"},"children":["Country selection"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Dynamic card image"},"children":["Dynamic card image"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Pre-fill billing address checkbox"},"children":["Pre-fill billing address checkbox"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onAddressChanged"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"Yes","attributes":{},"children":[]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onBlur"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"Yes","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"Yes","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onCardBrandCannotRecognised"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"Yes","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Card number only."]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onCardBrandDetected"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"Yes","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Card number only."]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onCardDetected"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"Yes","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onCardFlipped"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"Yes","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onCardInteraction"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"Yes","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onChange"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"Yes","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"Yes","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"Yes","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onClick"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"Yes","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onCollectEnd"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"Yes","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onCollectStart"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"Yes","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onCountrySelected"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"Yes","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onCountryDeselected"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"Yes","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onCvcEntered"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onCustomValidation"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"Yes","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onDeleteTokenFailed"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onDeleteTokenSuccess"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onFocus"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"Yes","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"Yes","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onGetFingerprintResult"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"Yes","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onImageError"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"Yes","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onImageLoaded"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"Yes","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onOnceCardClick"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onPostAuthentication"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"Yes","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onPostAuthorisation"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"Yes","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onPostInitiateAuthentication"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"Yes","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onPostTokenisation"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"Yes","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onPreAuthentication"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"Yes","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onPreAuthorisation"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"Yes","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onPreDeleteToken"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onPreInitiateAuthentication"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"Yes","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onPreRenderTokens"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onPreTokenisation"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"Yes","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onPrivacyClicked"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onRetrieveTokensFailed"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onStartSubmit"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"Yes","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onStateChanged"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"Yes","attributes":{},"children":[]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onSubmitError"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"Yes","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onSyncComplete"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"Yes","attributes":{},"children":[]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onTriggerFieldValidation"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"Yes","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"Yes","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onUpdateTokenFailed"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onUpdateTokenSuccess"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onValidation"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"Yes","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onValidationPassed"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"Yes","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"Yes","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onValidationFailed"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"Yes","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"Yes","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["tokenItemBuilder"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["tokenLabelBuilder"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"No","attributes":{},"children":[]}]}]}]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"callbacks","__idx":3},"children":["Callbacks"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"onaddresschanged","__idx":4},"children":["onAddressChanged"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This callback is triggered when address synchronisation starts."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["You can use it to:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Show loading indicators."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Track sync performance."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Update the progress UI."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Log sync operations."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Handle concurrent sync requests."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Display sync progress to users."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"event-data","__idx":5},"children":["Event data"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Parameter"},"children":["Parameter"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["event"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["AddressSyncEvent"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The address synchronisation event object."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["event.sourceAddress"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["BillingAddressData"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The shipping address being copied."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["event.targetComponentId"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The ID of the billing address component."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["event.syncedFields"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["List<String>"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The list of fields being synchronised."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["event.syncStrategy"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["AddressSyncStrategy"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The strategy used for synchronisation."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["event.startTime"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Long"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["When the sync operation started (timestamp)."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"example-implementation","__idx":6},"children":["Example implementation"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"kotlin","header":{"controls":{"copy":{}}},"source":"val preFillCheckboxConfig = PreFillBillingAddressCheckboxComponentConfig(\n    onAddressSync = { event ->\n        Log.d(\"AddressSync\", \"Starting address sync\")\n        Log.d(\"AddressSync\", \"Source: ${event.sourceAddress}\")\n        Log.d(\"AddressSync\", \"Strategy: ${event.syncStrategy}\")\n        Log.d(\"AddressSync\", \"Fields: ${event.syncedFields.joinToString()}\")\n        \n        // Show loading UI\n        showAddressSyncLoading()\n        \n        // Update progress indicators\n        updateSyncProgress(0, event.syncedFields.size)\n        \n        // Track sync start\n        analytics.track(\"address_sync_started\", mapOf(\n            \"sync_strategy\" to event.syncStrategy.name,\n            \"field_count\" to event.syncedFields.size,\n            \"target_component\" to event.targetComponentId\n        ))\n        \n        // Log for debugging\n        logSyncOperation(\"started\", event)\n    }\n)\n","lang":"kotlin"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"onblur","__idx":7},"children":["onBlur"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This callback is triggered when the input field loses focus."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["You can use it to:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Hide input assistance UI (keyboards, helpers)."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Trigger field validation."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Save the field state for recovery."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Update progress indicators."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Track user interaction patterns."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Implement custom focus management."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"event-data-1","__idx":8},"children":["Event data"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Parameter"},"children":["Parameter"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["focusEvent"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["FocusEvent"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The focus event object."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["focusEvent.fieldName"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The name of the field that lost focus."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["focusEvent.value"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The current value in the field."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["focusEvent.isValid"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Boolean"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Whether the current value is valid."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["focusEvent.timestamp"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Long"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["When the blur event occurred (timestamp)."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["focusEvent.nextFocusTarget"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The next field that will receive focus, if any."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"example-implementation-1","__idx":9},"children":["Example implementation"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"kotlin","header":{"controls":{"copy":{}}},"source":"val cardNumberConfig = CardNumberComponentConfig(\n    onBlur = { focusEvent ->\n        Log.d(\"Payment\", \"Card number field blurred: ${focusEvent.value}\")\n        Log.d(\"Payment\", \"Field valid: ${focusEvent.isValid}\")\n        \n        // Hide input assistance UI\n        hideInputHelper()\n        \n        // Trigger validation if field has content\n        if (focusEvent.value.isNotEmpty()) {\n            validateCardNumber(focusEvent.value)\n        }\n        \n        // Update UI state\n        updateFieldAppearance(focusEvent.fieldName, focused = false)\n        \n        // Track field completion\n        analytics.track(\"field_blur\", mapOf(\n            \"field\" to focusEvent.fieldName,\n            \"has_value\" to focusEvent.value.isNotEmpty(),\n            \"is_valid\" to focusEvent.isValid\n        ))\n    }\n)\n","lang":"kotlin"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"oncardbrandcannotrecognised","__idx":10},"children":["onCardBrandCannotRecognised"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This callback is triggered when the card number input changes, but the entered digits don't match any known card brand patterns."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["You can use it to:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Display a generic card icon instead of a brand-specific icon."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Show warning messages for unsupported card types."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Provide a fallback UI for unknown card brands."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Track unrecognised card patterns for analytics."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Implement custom validation for regional card types."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Guide users to supported payment methods."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"event-data-2","__idx":11},"children":["Event data"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Parameter"},"children":["Parameter"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["event"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["CardBrandRecognitionEvent"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The card brand recognition event object."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["event.cardNumber"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The current card number input (masked for security)."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["event.detectedLength"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Int"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The length of the current input."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["event.potentialMatches"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["List<CardBrand>"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The list of possible card brands based on partial input."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["event.inputSource"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["InputSource"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["How the number was entered."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["event.timestamp"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Long"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The date and time when the detection attempt occurred."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["event.confidenceLevel"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Float"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The confidence level of the detection attempt (0.0 to 1.0)."]}]}]}]}]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"kotlin","header":{"controls":{"copy":{}}},"source":"val cardNumberConfig = CardNumberComponentConfig(\n    onCardBrandCannotRecognised = { event ->\n        Log.d(\"Payment\", \"Card brand could not be recognised\")\n        // Show generic card icon or warning\n        showUnknownCardBrandWarning()\n    }\n)\n","lang":"kotlin"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"oncardbranddetected","__idx":12},"children":["onCardBrandDetected"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This callback is triggered when the card number input changes and a recognised card brand (e.g., Visa, MasterCard) is detected from the input value."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["You can use it to:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Update card brand icons and UI styling."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Enable/disable brand-specific features."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Show acceptance status messages."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Track brand detection accuracy."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Trigger validation rule changes."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"event-data-3","__idx":13},"children":["Event data"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Parameter"},"children":["Parameter"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["event"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["CardBrandDetectionEvent"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The card brand detection event object."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["event.cardBrand"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["CardBrand"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The detected card brand."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["event.isCardBrandAccepted"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Boolean"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Whether the detected brand is accepted."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["event.confidence"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Float"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The detection confidence score (0.0-1.0)."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["event.previousBrand"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["CardBrand?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The previously detected brand (if any)."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"example-implementation-2","__idx":14},"children":["Example implementation"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"kotlin","header":{"controls":{"copy":{}}},"source":"val cardNumberConfig = CardNumberComponentConfig(\n    onCardBrandDetected = { event ->\n        val cardBrand = event.cardBrand\n        val isAccepted = event.isCardBrandAccepted\n        Log.d(\"Payment\", \"Card brand detected: ${cardBrand.name}, accepted: $isAccepted\")\n        \n        // Update UI to show detected brand\n        updateCardBrandIcon(cardBrand)\n        \n        if (!isAccepted) {\n            showCardNotAcceptedMessage(cardBrand)\n        }\n        \n        // Track detection analytics\n        analytics.track(\"card_brand_detected\", mapOf(\n            \"brand\" to cardBrand.name,\n            \"accepted\" to isAccepted,\n            \"confidence\" to event.confidence\n        ))\n    }\n)\n","lang":"kotlin"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"oncarddetected","__idx":15},"children":["onCardDetected"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This callback is triggered when the dynamic card image component detects or changes the card brand display."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["You can use it to:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Update the card image display."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Trigger brand-specific validations."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Update form field behaviours."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Track detection accuracy."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Customise the UI based on brand."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Enable brand-specific features."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"event-data-4","__idx":16},"children":["Event data"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Parameter"},"children":["Parameter"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["event"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["CardDetectionEvent"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The card detection event object."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["event.detectedBrand"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["CardBrand"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The newly detected card brand."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["event.previousBrand"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["CardBrand?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The previously detected brand (if any)."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["event.confidence"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Float"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The detection confidence score (0.0-1.0)."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["event.detectionTime"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Long"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The time taken for detection, in milliseconds."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["event.source"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["DetectionSource"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The source of the detection."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"example-implementation-3","__idx":17},"children":["Example implementation"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"kotlin","header":{"controls":{"copy":{}}},"source":"val dynamicCardImageConfig = DynamicCardImageComponentConfig(\n    onCardDetected = { event ->\n        Log.d(\"CardImage\", \"Card detected: ${event.detectedBrand.displayName}\")\n        Log.d(\"CardImage\", \"Confidence: ${event.confidence}\")\n        Log.d(\"CardImage\", \"Detection time: ${event.detectionTime}ms\")\n        \n        // Update UI based on detected brand\n        when (event.detectedBrand) {\n            CardBrand.VISA -> {\n                updateCardValidation(visaValidationRules)\n                enableVisaSpecificFeatures()\n            }\n            CardBrand.AMERICAN_EXPRESS -> {\n                updateCardValidation(amexValidationRules)\n                showAmexCvcHelper() // 4-digit CVC\n            }\n            CardBrand.MASTERCARD -> {\n                updateCardValidation(mastercardValidationRules)\n                enableMastercardBenefits()\n            }\n            else -> {\n                updateCardValidation(genericValidationRules)\n            }\n        }\n        \n        // Announce brand change for accessibility\n        if (announceCardChanges) {\n            announceToAccessibility(\"${event.detectedBrand.displayName} card detected\")\n        }\n        \n        // Track detection analytics\n        if (trackCardDetection) {\n            trackAnalyticsEvent(\"card_brand_detected\", mapOf(\n                \"brand\" to event.detectedBrand.displayName,\n                \"confidence\" to event.confidence.toString(),\n                \"detection_time\" to event.detectionTime.toString(),\n                \"source\" to event.source.name\n            ))\n        }\n    }\n)\n","lang":"kotlin"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"oncardflipped","__idx":18},"children":["onCardFlipped"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This callback is triggered when the card image is flipped to show the front or back."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["You can use it to:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Coordinate with CVC input field."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Show relevant card information."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Track user engagement."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Provide contextual help."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Enhance visual feedback."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Update accessibility announcements."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"event-data-5","__idx":19},"children":["Event data"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Parameter"},"children":["Parameter"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["event"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["CardFlipEvent"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The card flip event object."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["event.cardBrand"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["CardBrand"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The brand of the flipped card."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["event.showingBack"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Boolean"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Whether the back side is now visible."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["event.trigger"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["FlipTrigger"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["What triggered the flip (tap, swipe, etc.)."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["event.animationDuration"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Long"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The duration of the flip animation in milliseconds."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"example-implementation-4","__idx":20},"children":["Example implementation"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"kotlin","header":{"controls":{"copy":{}}},"source":"val dynamicCardImageConfig = DynamicCardImageComponentConfig(\n    onCardFlipped = { event ->\n        Log.d(\"CardImage\", \"Card flipped: ${event.cardBrand.displayName}\")\n        Log.d(\"CardImage\", \"Showing back: ${event.showingBack}\")\n        Log.d(\"CardImage\", \"Trigger: ${event.trigger}\")\n        \n        // Update related UI components\n        if (event.showingBack) {\n            // Highlight CVC field when back is shown\n            highlightCvcField()\n            showCvcHelper()\n        } else {\n            // Show card number helper when front is shown\n            highlightCardNumberField()\n            showCardNumberHelper()\n        }\n        \n        // Provide accessibility feedback\n        announceToAccessibility(\n            if (event.showingBack) \"Showing card back with security code field\"\n            else \"Showing card front with card number\"\n        )\n        \n        // Track user engagement\n        analytics.track(\"card_flip\", mapOf(\n            \"showing_back\" to event.showingBack,\n            \"trigger\" to event.trigger.name,\n            \"brand\" to event.cardBrand.displayName\n        ))\n    }\n)\n","lang":"kotlin"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"oncardinteraction","__idx":21},"children":["onCardInteraction"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This callback is triggered when a user interacts with the card image."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["You can use it to:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Trigger card flip animations."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Show card details or zoom."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Provide haptic feedback."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Track user engagement patterns."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Enable interactive card features."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Implement custom gestures."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"event-data-6","__idx":22},"children":["Event data"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Parameter"},"children":["Parameter"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["event"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["CardInteractionEvent"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The card interaction event object."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["event.cardBrand"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["CardBrand"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The brand of the card."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["event.interactionType"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["InteractionType"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The type of interaction performed. For example, a tap or a swipe."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["event.timestamp"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Long"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The date and time when the interaction occurred."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["event.coordinates"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["TouchCoordinates?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The touch coordinates, if applicable."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"example-implementation-5","__idx":23},"children":["Example implementation"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"kotlin","header":{"controls":{"copy":{}}},"source":"val dynamicCardImageConfig = DynamicCardImageComponentConfig(\n    onCardInteraction = { event ->\n        Log.d(\"CardImage\", \"Card interaction: ${event.interactionType}\")\n        Log.d(\"CardImage\", \"Brand: ${event.cardBrand.displayName}\")\n        \n        when (event.interactionType) {\n            InteractionType.TAP -> {\n                // Simple tap - flip card\n                triggerCardFlip()\n                provideTapFeedback()\n            }\n            InteractionType.LONG_PRESS -> {\n                // Long press - show card details\n                showCardDetailsMenu()\n                provideHapticFeedback()\n            }\n            InteractionType.DOUBLE_TAP -> {\n                // Double tap - zoom card\n                showCardZoom()\n            }\n            InteractionType.SWIPE_LEFT -> {\n                // Swipe left - previous card style\n                switchToPreviousCardStyle()\n            }\n            InteractionType.SWIPE_RIGHT -> {\n                // Swipe right - next card style\n                switchToNextCardStyle()\n            }\n        }\n        \n        // Track engagement metrics\n        analytics.track(\"card_interaction\", mapOf(\n            \"interaction_type\" to event.interactionType.name,\n            \"brand\" to event.cardBrand.displayName,\n            \"timestamp\" to event.timestamp\n        ))\n    }\n)\n","lang":"kotlin"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"onchange","__idx":24},"children":["onChange"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This callback is triggered when the input value changes in one or more fields. For example, if a character is added or the field is cleared."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["You can use it to:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Real-time validation and formatting"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Auto-advance to next field"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Dynamic UI updates based on content"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Character counting and limits"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Search suggestions"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Progress tracking"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"event-data-7","__idx":25},"children":["Event data"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Parameter"},"children":["Parameter"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["changeEvent"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["ChangeEvent"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The change event object."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["changeEvent.fieldName"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The name of the field that changed."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["changeEvent.value"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The new value in the field."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["changeEvent.previousValue"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The previous value before change."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["changeEvent.changeType"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["ChangeType"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The type of change (insertion, deletion, replacement)."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["changeEvent.cursorPosition"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Int"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The current cursor position."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["changeEvent.isValid"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Boolean"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Whether the new value is valid."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["changeEvent.timestamp"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Long"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The timestamp when the change occurred."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"example-implementation-6","__idx":26},"children":["Example implementation"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"kotlin","header":{"controls":{"copy":{}}},"source":"val cardNumberConfig = CardNumberComponentConfig(\n    onChange = { changeEvent ->\n        Log.d(\"Payment\", \"Card number changed: ${changeEvent.value}\")\n        Log.d(\"Payment\", \"Change type: ${changeEvent.changeType}\")\n        Log.d(\"Payment\", \"Cursor position: ${changeEvent.cursorPosition}\")\n        \n        // Real-time validation and formatting\n        val formattedValue = formatCardNumber(changeEvent.value)\n        if (formattedValue != changeEvent.value) {\n            updateFieldValue(changeEvent.fieldName, formattedValue)\n        }\n        \n        // Detect card brand as user types\n        val detectedBrand = detectCardBrand(changeEvent.value)\n        updateCardBrandIndicator(detectedBrand)\n        \n        // Auto-advance when complete\n        if (isCardNumberComplete(changeEvent.value) && changeEvent.isValid) {\n            advanceToNextField()\n        }\n        \n        // Track typing patterns for UX insights\n        analytics.track(\"field_change\", mapOf(\n            \"field\" to changeEvent.fieldName,\n            \"change_type\" to changeEvent.changeType.name,\n            \"length\" to changeEvent.value.length,\n            \"is_valid\" to changeEvent.isValid\n        ))\n    }\n)\n","lang":"kotlin"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"onsubmitstart","__idx":27},"children":["onSubmitStart"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This callback is triggered when submission begins."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["You can use it to:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Show loading indicators."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Disable form interactions."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Track submission attempts."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Update the UI state to \"processing\"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Log submission events for analytics."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"event-data-8","__idx":28},"children":["Event data"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Parameter"},"children":["Parameter"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["timestamp"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Long"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Date and time when the submission started."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["componentState"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["ComponentState"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The current state of the submit component."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["validationResults"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["List<ValidationResult>"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The results of pre-submission validation."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"example-implementation-7","__idx":29},"children":["Example implementation"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"kotlin","header":{"controls":{"copy":{}}},"source":"val cardSubmitConfig = CardSubmitComponentConfig(\n    onSubmitStart = {\n        Log.d(\"Payment\", \"Payment submission started\")\n        \n        // Show loading indicator\n        showPaymentProcessingUI()\n        \n        // Disable form interactions\n        disableAllFormInputs()\n        \n        // Update UI state\n        updateSubmitButtonState(loading = true)\n        \n        // Track submission attempt\n        analytics.track(\"payment_submission_started\", mapOf(\n            \"timestamp\" to System.currentTimeMillis(),\n            \"payment_method\" to getCurrentPaymentMethod()\n        ))\n    }\n)\n","lang":"kotlin"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"oncollectstart","__idx":30},"children":["onCollectStart"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This callback is triggered when the device data collection phase starts."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["You can use it to:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Update progress indicators."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Show \"Gathering device information\" message."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Track collection start time."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Initialise fraud detection."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Display loading states."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"event-data-9","__idx":31},"children":["Event data"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Parameter"},"children":["Parameter"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["timestamp"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Long"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Date and time when collection started."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["deviceInfo"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["DeviceInfo"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Basic device information."]}]},{"$$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":["The collection session identifier."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"example-implementation-8","__idx":32},"children":["Example implementation"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"kotlin","header":{"controls":{"copy":{}}},"source":"val cardSubmitConfig = CardSubmitComponentConfig(\n    onCollectStart = {\n        Log.d(\"Payment\", \"Device data collection started\")\n        \n        // Show collection progress\n        showMessage(\"Collecting device information...\", MessageType.INFO)\n        \n        // Update progress indicators\n        updateProgressStep(\"collect\", ProgressStepStatus.IN_PROGRESS)\n        \n        // Track collection start\n        analytics.track(\"device_collection_started\", mapOf(\n            \"timestamp\" to System.currentTimeMillis(),\n            \"session_id\" to getCurrentSessionId()\n        ))\n    }\n)\n","lang":"kotlin"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"oncollectcomplete","__idx":33},"children":["onCollectComplete"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This callback is triggered when the device data collection phase completes."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["You can use it to:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Evaluate the fraud risk score."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Proceed to authentication if low risk."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Apply additional security if high risk."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Track collection performance metrics."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Update progress indicators."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"event-data-10","__idx":34},"children":["Event data"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Parameter"},"children":["Parameter"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["collectResult"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["CollectResult"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The collection result object."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["collectResult.deviceData"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Encrypted device fingerprint."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["collectResult.fingerprint"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The unique device identifier."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["collectResult.riskScore"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Float"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The fraud risk assessment score (0.0-1.0)."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["collectResult.collectDuration"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Long"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The time taken to collect data, in milliseconds."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["collectResult.dataPoints"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Int"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The number of data points collected."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"example-implementation-9","__idx":35},"children":["Example implementation"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"kotlin","header":{"controls":{"copy":{}}},"source":"val cardSubmitConfig = CardSubmitComponentConfig(\n    onCollectComplete = { collectResult ->\n        Log.d(\"Payment\", \"Device data collection completed\")\n        Log.d(\"Payment\", \"Risk score: ${collectResult.riskScore}\")\n        Log.d(\"Payment\", \"Collection time: ${collectResult.collectDuration}ms\")\n        \n        // Hide collection progress\n        hideDataCollectionIndicator()\n        \n        // Evaluate risk score\n        when {\n            collectResult.riskScore > 0.8f -> {\n                Log.w(\"Payment\", \"High risk transaction detected\")\n                handleHighRiskTransaction(collectResult)\n            }\n            collectResult.riskScore > 0.5f -> {\n                Log.i(\"Payment\", \"Medium risk transaction\")\n                handleMediumRiskTransaction(collectResult)\n            }\n            else -> {\n                Log.d(\"Payment\", \"Low risk transaction\")\n                proceedWithNormalFlow()\n            }\n        }\n        \n        // Track collection performance\n        analytics.track(\"device_collection_completed\", mapOf(\n            \"risk_score\" to collectResult.riskScore,\n            \"duration\" to collectResult.collectDuration,\n            \"data_points\" to collectResult.dataPoints,\n            \"fingerprint_quality\" to getFingerprintQuality(collectResult)\n        ))\n    }\n)\n","lang":"kotlin"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"oncvcentered","__idx":36},"children":["onCvcEntered"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This callback is triggered when a customer enters a CVC value in the click-once component's CVC field."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["You can use it to:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Enable the submit button after CVC entry."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Perform real-time CVC validation."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Track user progress in the payment flow."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Update the UI state for form completion."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Trigger the card authentication flow."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"event-data-11","__idx":37},"children":["Event data"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Parameter"},"children":["Parameter"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["cvcEvent"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["CvcEvent"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The CVC entry event object."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["cvcEvent.cvcValue"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The entered CVC value (masked)."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["cvcEvent.cardToken"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["CardToken"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The associated card token."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["cvcEvent.isValid"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Boolean"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Whether the CVC is valid."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["cvcEvent.validationErrors"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["List<ValidationResult>?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Any validation errors."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"example-implementation-10","__idx":38},"children":["Example implementation"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"kotlin","header":{"controls":{"copy":{}}},"source":"val clickOnceConfig = ClickOnceComponentConfig(\n    onCvcEntered = { cvcEvent ->\n        Log.d(\"Payment\", \"CVC has been entered for card: ${cvcEvent.cardToken.maskedPAN}\")\n        Log.d(\"Payment\", \"CVC valid: ${cvcEvent.isValid}\")\n        \n        if (cvcEvent.isValid) {\n            // Enable submit button\n            enableSubmitButton()\n            \n            // Clear any previous errors\n            clearCvcError()\n            \n            // Track successful CVC entry\n            analytics.track(\"cvc_entered\", mapOf(\n                \"card_brand\" to cvcEvent.cardToken.cardBrand.name,\n                \"is_valid\" to true\n            ))\n        } else {\n            // Show validation errors\n            showCvcErrors(cvcEvent.validationErrors)\n            \n            // Keep submit button disabled\n            disableSubmitButton()\n        }\n    }\n)\n","lang":"kotlin"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"oncustomvalidation","__idx":39},"children":["onCustomValidation"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This callback is triggered after standard component validation passes and before payment submission proceeds. Return ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["true"]}," to allow submission, or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["false"]}," to block submission."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["You can use it to:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Validate custom business rules before payment processing."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Check transaction amount limits or thresholds."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Verify customer eligibility for specific payment methods."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Implement fraud prevention rules based on order data."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Validate inventory availability before charging."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Enforce payment policies based on customer account status."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"event-data-12","__idx":40},"children":["Event data"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This callback receives no parameters and returns a Boolean value."]},{"$$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":"Return value"},"children":["Return value"]},{"$$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":["true"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Allows the payment submission to proceed."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["false"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Blocks the payment submission and stops the transaction flow."]}]}]}]}]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"info"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This callback is called after all standard SDK component validations (card number, CVV, expiry date, billing address) have passed successfully. It enables you to add an additional validation layer for business-specific requirements."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"example-implementation-11","__idx":41},"children":["Example implementation"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"kotlin","header":{"controls":{"copy":{}}},"source":"val cardSubmitConfig = CardSubmitComponentConfig(\n    onCustomValidation = {\n        Log.d(\"Payment\", \"Running custom validation checks...\")\n        \n        // Example: Validate transaction amount limits\n        val transactionAmount = checkout.getSdkConfig().transactionData.amount\n        val maxAllowedAmount = 10000.0\n        \n        if (transactionAmount > maxAllowedAmount) {\n            Log.w(\"Payment\", \"Transaction amount exceeds maximum allowed: $maxAllowedAmount\")\n            showCustomError(\"Transaction amount cannot exceed £$maxAllowedAmount\")\n            return@CardSubmitComponentConfig false\n        }\n        \n        // Example: Check customer eligibility\n        val customerTier = getCustomerTier()\n        if (customerTier == CustomerTier.RESTRICTED) {\n            Log.w(\"Payment\", \"Customer account is restricted from making payments\")\n            showCustomError(\"Your account is temporarily restricted. Please contact support.\")\n            return@CardSubmitComponentConfig false\n        }\n        \n        // Example: Validate inventory availability\n        val itemsInStock = checkInventoryAvailability()\n        if (!itemsInStock) {\n            Log.w(\"Payment\", \"One or more items are no longer available\")\n            showCustomError(\"Some items in your cart are no longer available\")\n            return@CardSubmitComponentConfig false\n        }\n        \n        // All custom validations passed\n        Log.d(\"Payment\", \"Custom validation passed successfully\")\n        return@CardSubmitComponentConfig true\n    },\n    \n    onSubmitError = { error ->\n        Log.e(\"Payment\", \"Payment submission error: ${error.message}\")\n    },\n    \n    onPostAuthorisation = { result ->\n        Log.d(\"Payment\", \"Payment authorisation completed\")\n    }\n)\n","lang":"kotlin"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"ondeletetokenfailed","__idx":42},"children":["onDeleteTokenFailed"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This callback is triggered when a card token deletion request fails. For example, due to a network error."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["You can use it to:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Show user-friendly error messages."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Implement retry logic for transient failures."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Log errors for debugging."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Track deletion failure rates."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Provide alternative actions."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"event-data-13","__idx":43},"children":["Event data"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Parameter"},"children":["Parameter"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["response"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["DeleteTokenFailureResponse"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The failure response object."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["response.tokenId"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The ID of the token that failed to delete."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["response.error"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["SdkException"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The error details and error code."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["response.errorMessage"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["A human-readable error message."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["response.retryable"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Boolean"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Whether the operation can be retried."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["response.requestId"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The unique request identifier."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"example-implementation-12","__idx":44},"children":["Example implementation"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"kotlin","header":{"controls":{"copy":{}}},"source":"val cardOnFileConfig = CardOnFileComponentConfig(\n    onDeleteTokenFailed = { response ->\n        Log.e(\"Payment\", \"Token deletion failed: ${response.error}\")\n        Log.e(\"Payment\", \"Token ID: ${response.tokenId}\")\n        Log.e(\"Payment\", \"Retryable: ${response.retryable}\")\n        \n        // Show appropriate error message\n        val errorMessage = when (response.error.code) {\n            \"NETWORK_ERROR\" -> \"Network error. Please check your connection and try again.\"\n            \"INVALID_TOKEN\" -> \"This card is no longer valid.\"\n            \"INSUFFICIENT_PERMISSIONS\" -> \"You don't have permission to delete this card.\"\n            else -> \"Failed to delete card. Please try again.\"\n        }\n        \n        showErrorDialog(errorMessage)\n        \n        // Enable retry if possible\n        if (response.retryable) {\n            showRetryOption { \n                retryTokenDeletion(response.tokenId)\n            }\n        }\n        \n        // Track deletion failures\n        analytics.track(\"token_deletion_failed\", mapOf(\n            \"token_id\" to response.tokenId,\n            \"error_code\" to response.error.code,\n            \"retryable\" to response.retryable\n        ))\n    }\n)\n","lang":"kotlin"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"ondeletetokensuccess","__idx":45},"children":["onDeleteTokenSuccess"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This callback is triggered when a card token is successfully deleted from the vault."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["You can use it to:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Refresh the token list display."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Show success confirmation messages."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Update the UI to reflect removal."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Track token management analytics."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Clean up local references."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"event-data-14","__idx":46},"children":["Event data"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Parameter"},"children":["Parameter"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["response"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["DeleteTokenSuccessResponse"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The success response object."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["response.tokenId"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The ID of the successfully deleted token."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["response.deletedToken"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["CardToken"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Complete token information that was deleted."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["response.remainingTokenCount"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Int"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The number of tokens remaining."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["response.deletionTime"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Long"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The time taken for the deletion operation."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"example-implementation-13","__idx":47},"children":["Example implementation"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"kotlin","header":{"controls":{"copy":{}}},"source":"val cardOnFileConfig = CardOnFileComponentConfig(\n    onDeleteTokenSuccess = { response ->\n        Log.d(\"Payment\", \"Token deleted successfully: ${response.tokenId}\")\n        Log.d(\"Payment\", \"Remaining tokens: ${response.remainingTokenCount}\")\n        \n        // Show success message\n        showSuccessMessage(\"Card deleted successfully\")\n        \n        // Refresh the token list\n        refreshCardList()\n        \n        // Update UI if no cards remain\n        if (response.remainingTokenCount == 0) {\n            showNoCardsMessage()\n            hideCardOnFileSection()\n        }\n        \n        // Track successful deletion\n        analytics.track(\"token_deletion_success\", mapOf(\n            \"token_id\" to response.tokenId,\n            \"card_brand\" to response.deletedToken.cardBrand.name,\n            \"remaining_count\" to response.remainingTokenCount,\n            \"deletion_time\" to response.deletionTime\n        ))\n        \n        // Announce to accessibility services\n        announceToAccessibility(\"Card deleted successfully\")\n    }\n)\n","lang":"kotlin"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"onfocus","__idx":48},"children":["onFocus"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This callback is triggered when the input field receives focus."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["You can use it to:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Show input hints or help text."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Display field-specific keyboards."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Update the UI styling for the focused state."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Track user interaction patterns."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Provide contextual assistance."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Implement custom focus management."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"event-data-15","__idx":49},"children":["Event data"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Parameter"},"children":["Parameter"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["focusEvent"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["FocusEvent"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The focus event object."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["focusEvent.fieldName"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The name of the field that received focus."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["focusEvent.value"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The current value in the field."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["focusEvent.isValid"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Boolean"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Whether the current value is valid."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["focusEvent.timestamp"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Long"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The date and time when the focus event occurred."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["focusEvent.previousFocusTarget"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The previous field that had focus, if any."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"example-implementation-14","__idx":50},"children":["Example implementation"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"kotlin","header":{"controls":{"copy":{}}},"source":"val cardNumberConfig = CardNumberComponentConfig(\n    onFocus = { focusEvent ->\n        Log.d(\"Payment\", \"Card number field focused\")\n        Log.d(\"Payment\", \"Current value: ${focusEvent.value}\")\n        Log.d(\"Payment\", \"Previous focus: ${focusEvent.previousFocusTarget}\")\n        \n        // Show input hints or help text\n        showCardNumberInputHelper()\n        \n        // Update field appearance\n        updateFieldAppearance(focusEvent.fieldName, focused = true)\n        \n        // Show numeric keyboard for card number\n        showNumericKeyboard()\n        \n        // Track field focus for UX analytics\n        analytics.track(\"field_focus\", mapOf(\n            \"field\" to focusEvent.fieldName,\n            \"has_value\" to focusEvent.value.isNotEmpty(),\n            \"previous_field\" to focusEvent.previousFocusTarget\n        ))\n        \n        // Announce to accessibility services\n        announceToAccessibility(\"Card number field focused. Enter your card number\")\n    }\n)\n","lang":"kotlin"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"ongetfingerprintresult","__idx":51},"children":["onGetFingerprintResult"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This callback is used to retrieve fingerprint data for authentication."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["You can use it to:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Provide device fingerprint for fraud detection."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Support the 3DS authentication flows."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Enhance transaction security."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Comply with payment processor requirements."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"event-data-16","__idx":52},"children":["Event data"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Parameter"},"children":["Parameter"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["requestId"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The unique identifier for the fingerprint request."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["timestamp"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Long"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The date and time when the fingerprint was requested."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"example-implementation-15","__idx":53},"children":["Example implementation"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"kotlin","header":{"controls":{"copy":{}}},"source":"val cardSubmitConfig = CardSubmitComponentConfig(\n    onGetFingerprintResult = {\n        // Return fingerprint data as a string\n        return@CardSubmitComponentConfig getDeviceFingerprintData()\n    }\n)\n\nprivate suspend fun getDeviceFingerprintData(): String {\n    // Implement device fingerprinting logic\n    return deviceFingerprintService.collectFingerprint()\n}\n","lang":"kotlin"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"onimageerror","__idx":54},"children":["onImageError"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This callback is triggered when a card image fails to load. For example, due to an unsupported image format or network issues."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["You can use it to:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Display fallback images."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Implement custom retry logic."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Track image availability issues."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Switch to offline mode."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Report errors to monitoring systems."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Show user-friendly error messages."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"event-data-17","__idx":55},"children":["Event data"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Parameter"},"children":["Parameter"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["event"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["ImageErrorEvent"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The image error event object."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["event.cardBrand"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["CardBrand"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The brand of the failed image."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["event.error"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["ImageLoadError"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The type of error that occurred."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["event.retryAttempt"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Int"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The current retry attempt number."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["event.canRetry"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Boolean"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Whether automatic retry is possible."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["event.errorMessage"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The detailed error description."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"example-implementation-16","__idx":56},"children":["Example implementation"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"kotlin","header":{"controls":{"copy":{}}},"source":"val dynamicCardImageConfig = DynamicCardImageComponentConfig(\n    onImageError = { event ->\n        Log.e(\"CardImage\", \"Image load failed for ${event.cardBrand.displayName}\")\n        Log.e(\"CardImage\", \"Error: ${event.error}\")\n        Log.e(\"CardImage\", \"Retry attempt: ${event.retryAttempt}\")\n        \n        when (event.error) {\n            ImageError.NETWORK_ERROR -> {\n                if (event.canRetry && event.retryAttempt < 3) {\n                    // Retry with exponential backoff\n                    retryImageLoad(event.cardBrand, event.retryAttempt)\n                } else {\n                    // Use cached fallback image\n                    loadFallbackImage(event.cardBrand)\n                }\n            }\n            ImageError.NOT_FOUND -> {\n                // Use generic card image\n                loadGenericCardImage()\n                reportMissingImage(event.cardBrand)\n            }\n            ImageError.TIMEOUT -> {\n                // Show loading state and retry\n                showImageLoadingState()\n                retryImageLoad(event.cardBrand, event.retryAttempt)\n            }\n            else -> {\n                // Use fallback and log error\n                loadFallbackImage(event.cardBrand)\n                logImageError(event)\n            }\n        }\n        \n        // Track error metrics\n        analytics.track(\"image_load_error\", mapOf(\n            \"brand\" to event.cardBrand.displayName,\n            \"error_type\" to event.error.name,\n            \"retry_attempt\" to event.retryAttempt,\n            \"can_retry\" to event.canRetry\n        ))\n    }\n)\n","lang":"kotlin"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"onimageloaded","__idx":57},"children":["onImageLoaded"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This callback is triggered when a card image successfully loads."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["You can use it to:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Track image loading performance."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Monitor cache effectiveness."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Optimise the image loading strategy."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Handle slow network conditions."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Update the loading states."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Measure user experience metrics."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"event-data-18","__idx":58},"children":["Event data"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Parameter"},"children":["Parameter"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["event"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["ImageLoadedEvent"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The image loaded event object."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["event.cardBrand"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["CardBrand"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The brand of the loaded card image."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["event.imageUrl"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The URL or resource identifier of the image."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["event.loadTime"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Long"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The time taken to load the image, in milliseconds."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["event.fromCache"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Boolean"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Whether the image was loaded from the cache."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["event.imageSize"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Long"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The size of the loaded image, in bytes."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["event.resolution"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The image resolution (width x height)."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"example-implementation-17","__idx":59},"children":["Example implementation"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"kotlin","header":{"controls":{"copy":{}}},"source":"val dynamicCardImageConfig = DynamicCardImageComponentConfig(\n    onImageLoaded = { event ->\n        Log.d(\"CardImage\", \"Image loaded: ${event.cardBrand.displayName}\")\n        Log.d(\"CardImage\", \"Load time: ${event.loadTime}ms\")\n        Log.d(\"CardImage\", \"From cache: ${event.fromCache}\")\n        Log.d(\"CardImage\", \"Image size: ${formatFileSize(event.imageSize)}\")\n        \n        // Hide loading indicators\n        hideImageLoadingState()\n        \n        // Update image cache statistics\n        updateCacheStats(event.fromCache, event.loadTime, event.imageSize)\n        \n        // Track loading performance\n        if (trackImageLoading) {\n            trackPerformanceMetric(\"image_load_time\", event.loadTime)\n            trackPerformanceMetric(\"image_cache_hit\", if (event.fromCache) 1 else 0)\n            trackPerformanceMetric(\"image_size\", event.imageSize)\n        }\n        \n        // Optimise future loading based on performance\n        if (event.loadTime > SLOW_LOAD_THRESHOLD) {\n            considerImageQualityReduction()\n        }\n        \n        // Preload related images if performance is good\n        if (event.loadTime < FAST_LOAD_THRESHOLD && !event.fromCache) {\n            preloadRelatedBrandImages()\n        }\n        \n        // Update accessibility\n        updateImageAccessibilityDescription(event.cardBrand)\n        \n        // Analytics tracking\n        analytics.track(\"image_loaded\", mapOf(\n            \"brand\" to event.cardBrand.displayName,\n            \"load_time\" to event.loadTime,\n            \"from_cache\" to event.fromCache,\n            \"size\" to event.imageSize,\n            \"resolution\" to \"${event.resolution.width}x${event.resolution.height}\"\n        ))\n    }\n)\n","lang":"kotlin"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"ononcecardclick","__idx":60},"children":["onOnceCardClick"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This callback is triggered when a customer selects a saved card in the click-once or card-on-file component."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["You can use it to:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Handle card selection logic."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Update the payment form with the card details."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Track user preferences."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Enable/disable the CVC requirement."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Update the UI to reflect the customer's selection."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"event-data-19","__idx":61},"children":["Event data"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Parameter"},"children":["Parameter"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["event"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["CardSelectionEvent"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The card selection event object."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["event.tokenId"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The ID of the selected card token."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["event.cardBrand"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["CardBrand"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The brand of the selected card."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["event.maskedNumber"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The masked card number for display."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["event.expiryDate"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The expiry date of the card."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["event.isDefault"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Boolean"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Whether this is the default card."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"example-implementation-18","__idx":62},"children":["Example implementation"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"kotlin","header":{"controls":{"copy":{}}},"source":"val clickOnceConfig = ClickOnceComponentConfig(\n    onOnceCardClick = { event ->\n        Log.d(\"Payment\", \"User selected saved card: ${event.maskedNumber}\")\n        Log.d(\"Payment\", \"Card brand: ${event.cardBrand.displayName}\")\n        \n        // Update UI to show selected card\n        updateSelectedCardDisplay(event)\n        \n        // Handle CVC requirement\n        if (event.requiresCvc) {\n            showCvcInput()\n            focusCvcField()\n        } else {\n            hideCvcInput()\n            enableSubmitButton()\n        }\n        \n        // Track user preferences\n        analytics.track(\"saved_card_selected\", mapOf(\n            \"brand\" to event.cardBrand.displayName,\n            \"is_default\" to event.isDefault,\n            \"requires_cvc\" to event.requiresCvc\n        ))\n    }\n)\n","lang":"kotlin"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"oncountrydeselected","__idx":63},"children":["onCountryDeselected"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This callback is triggered when a country selection is cleared or changed."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["You can use it to:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Clear dependent form fields."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Reset validation states."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Update the form layout for a new country."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Track user interaction patterns."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Trigger field reconfiguration."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"event-data-20","__idx":64},"children":["Event data"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Parameter"},"children":["Parameter"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["event"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["CountryDeselectionEvent"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The country deselection event object."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["event.deselectedCountry"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Country"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The country that was deselected."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["event.reason"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["DeselectionReason"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Why the deselection occurred."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["event.timestamp"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Long"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The date and time when the deselection occurred."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["event.previousSelectionMethod"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["SelectionMethod?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["How the previous selection was made."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"example-implementation-19","__idx":65},"children":["Example implementation"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"kotlin","header":{"controls":{"copy":{}}},"source":"val countrySelectionConfig = CountrySelectionComponentConfig(\n    onCountryDeselected = { event ->\n        Log.d(\"Country\", \"Country deselected: ${event.deselectedCountry.name}\")\n        Log.d(\"Country\", \"Reason: ${event.reason}\")\n        \n        // Clear dependent fields\n        when (event.deselectedCountry.code) {\n            \"US\" -> {\n                clearStateField()\n                clearZipCodeField()\n                hideStateSelector()\n            }\n            \"CA\" -> {\n                clearProvinceField()\n                clearPostalCodeField()\n                hideProvinceSelector()\n            }\n            \"GB\" -> {\n                clearCountyField()\n                clearPostcodeField()\n            }\n        }\n        \n        // Reset address validation\n        resetAddressValidation()\n        \n        // Update form layout\n        updateFormLayout(null)\n        \n        // Track deselection analytics\n        analytics.track(\"country_deselected\", mapOf(\n            \"country\" to event.deselectedCountry.code,\n            \"reason\" to event.reason.name,\n            \"previous_method\" to event.previousSelectionMethod?.name\n        ))\n    }\n)\n","lang":"kotlin"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"oncountryselected","__idx":66},"children":["onCountrySelected"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This callback is triggered when a country is selected by the user or programmatically."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["You can use it to:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Configure country-specific form fields."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Update address validation rules."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Show or hide region-specific fields."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Update the currency and formatting."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Track user location preferences."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"event-data-21","__idx":67},"children":["Event data"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Parameter"},"children":["Parameter"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["event"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["CountrySelectionEvent"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The country selection event object."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["event.selectedCountry"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Country"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The newly selected country."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["event.previousCountry"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Country?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The previously selected country, if any."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["event.selectionMethod"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["SelectionMethod"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["How the selection was made."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["event.timestamp"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Long"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The date and time when the selection occurred."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["event.userInitiated"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Boolean"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Whether the selection was user-initiated."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"example-implementation-20","__idx":68},"children":["Example implementation"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"kotlin","header":{"controls":{"copy":{}}},"source":"val countrySelectionConfig = CountrySelectionComponentConfig(\n    onCountrySelected = { event ->\n        Log.d(\"Country\", \"Country selected: ${event.selectedCountry.name}\")\n        Log.d(\"Country\", \"Selection method: ${event.selectionMethod}\")\n        \n        // Configure country-specific fields\n        when (event.selectedCountry.code) {\n            \"US\" -> {\n                showStateField()\n                showZipCodeField()\n                updatePhoneFormat(PhoneFormat.US)\n                setAddressValidation(USAddressValidator())\n            }\n            \"CA\" -> {\n                showProvinceField()\n                showPostalCodeField()\n                updatePhoneFormat(PhoneFormat.CA)\n                setAddressValidation(CanadaAddressValidator())\n            }\n            \"GB\" -> {\n                showCountyField()\n                showPostcodeField()\n                updatePhoneFormat(PhoneFormat.UK)\n                setAddressValidation(UKAddressValidator())\n            }\n            else -> {\n                configureGenericFields()\n                setAddressValidation(GenericAddressValidator())\n            }\n        }\n        \n        // Update currency if needed\n        updateCurrencyForCountry(event.selectedCountry)\n        \n        // Update form labels and placeholders\n        updateFormLabelsForCountry(event.selectedCountry)\n        \n        // Track selection analytics\n        analytics.track(\"country_selected\", mapOf(\n            \"country\" to event.selectedCountry.code,\n            \"country_name\" to event.selectedCountry.name,\n            \"selection_method\" to event.selectionMethod.name,\n            \"user_initiated\" to event.userInitiated,\n            \"previous_country\" to event.previousCountry?.code\n        ))\n        \n        // Announce selection for accessibility\n        announceToAccessibility(\"Selected ${event.selectedCountry.name}\")\n    }\n)\n","lang":"kotlin"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"onpostauthentication","__idx":69},"children":["onPostAuthentication"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This callback is triggered after 3DS authentication is completed."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["You can use it to:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Navigate to success or failure screens based on the authentication result."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Display authentication-specific success or error messages."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Log authentication metrics and performance data."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Update the UI state after authentication completion."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Trigger analytics events for authentication outcomes."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Handle specific error scenarios with custom messaging."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"event-data-22","__idx":70},"children":["Event data"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Parameter"},"children":["Parameter"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["authResult"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["AuthenticationResult"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The authentication result object."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["authResult.authenticationResult"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["AuthenticationResult"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The complete authentication result object."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["authResult.status"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["AuthenticationStatus"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The authentication status."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["authResult.transactionId"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The unique transaction identifier."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["authResult.authenticationValue"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The authentication value."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["authResult.eci"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The Electronic Commerce Indicator."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["authResult.processingTime"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Long"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The time taken for authentication, in milliseconds."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["authResult.threeDSVersion"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The version of 3DS protocol used."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["authResult.challengeType"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["ChallengeType"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The type of challenge presented."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["authResult.issuerResponse"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["IssuerResponse"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The issuer response details."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["authResult.timestamp"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Long"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The time and date when authentication completed."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"example-implementation-21","__idx":71},"children":["Example implementation"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"kotlin","header":{"controls":{"copy":{}}},"source":"val cardSubmitConfig = CardSubmitComponentConfig(\n    onPostAuthentication = { authResult ->\n        Log.d(\"Payment\", \"3DS authentication completed: $authResult\")\n        when (authResult.status) {\n            AuthenticationStatus.AUTHENTICATED -> {\n                showMessage(\"Authentication successful\", MessageType.SUCCESS)\n            }\n            AuthenticationStatus.FAILED -> {\n                showMessage(\"Authentication failed\", MessageType.ERROR)\n            }\n        }\n    }\n)\n","lang":"kotlin"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"onpostauthorisation","__idx":72},"children":["onPostAuthorisation"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This callback is triggered after a payment transaction has been processed and authorisation has been completed (successfully or unsuccessfully)."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["You can use it to:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Navigate to success or failure screens based on the authorisation result."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Display transaction-specific success or error messages."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Store transaction details for order management."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Trigger fulfillment processes for successful authorisations."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Handle declined transactions with appropriate retry logic."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Update inventory or reservation systems."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Send confirmation emails or notifications."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"event-data-23","__idx":73},"children":["Event data"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Parameter"},"children":["Parameter"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["result"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["AuthorisationResult"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The authorisation result object."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["result.authorisationResult"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["AuthorisationResult"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The complete authorisation result object."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["result.state"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["AuthorisationState"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The authorisation state."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["result.transactionId"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String"]},": Unique transaction identifier."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["result.authCode"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The authorisation code from the issuer."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["result.responseCode"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The issuer response code."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["result.responseMessage"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["A human-readable response message."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["result.processingTime"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Long"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The time taken for authorisation, in milliseconds."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["result.amount"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["BigDecimal"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The authorised amount. This may differ from the requested amount."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["result.currency"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The transaction currency."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["result.cardDetails"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["MaskedCardDetails"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The masked card details."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["result.merchantReference"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Your transaction reference."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["result.timestamp"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Long"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The time and date when authorisation completed."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["result.networkTransactionId"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The network-specific transaction ID."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"example-implementation-22","__idx":74},"children":["Example implementation"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"kotlin","header":{"controls":{"copy":{}}},"source":"val cardSubmitConfig = CardSubmitComponentConfig(\n    onPostAuthorisation = { result ->\n        when (result.state) {\n            AuthorisationState.AUTHORISED -> {\n                // Payment successful\n                showSuccessDialog(\"Payment successful!\")\n                navigateToSuccessScreen()\n            }\n            AuthorisationState.DECLINED -> {\n                // Payment failed\n                showErrorDialog(\"Payment failed. Please try again.\")\n            }\n        }\n    }\n)\n","lang":"kotlin"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"onpostinitiateauthentication","__idx":75},"children":["onPostInitiateAuthentication"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This callback is triggered after 3DS authentication is initiated."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["You can use it to:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Display appropriate UI for the challenge type."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Set up challenge window configuration and sizing."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Show progress indicators for different authentication flows."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Handle frictionless authentication completion."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Implement fallback logic for failed authentication initiation."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Track authentication performance and success rates."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"event-data-24","__idx":76},"children":["Event data"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Parameter"},"children":["Parameter"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["authResult"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["InitiationResult"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The initiation result object."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["authResult.initiationResult"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["InitiationResult"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The authentication initiation result object."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["authResult.status"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["InitiationStatus"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The initiation status."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["authResult.threeDSVersion"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The version of the 3DS protocol being used."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["authResult.transactionId"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The unique transaction identifier."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["authResult.challengeType"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["ChallengeType"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The type of challenge required."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["authResult.issuerAcsUrl"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The ACS URL for the challenge flow, if applicable."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["authResult.challengeWindow"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["ChallengeWindowSize"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The preferred challenge window size."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["authResult.processingTime"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Long"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The time taken to initiate authentication."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["authResult.deviceFingerprint"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The device fingerprinting results."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["authResult.riskAssessment"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["RiskAssessment"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The risk evaluation from the authentication service."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["authResult.timestamp"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Long"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The time and date when initiation completed."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"example-implementation-23","__idx":77},"children":["Example implementation"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"kotlin","header":{"controls":{"copy":{}}},"source":"val cardSubmitConfig = CardSubmitComponentConfig(\n    onPostInitiateAuthentication = { authResult ->\n        Log.d(\"Payment\", \"3DS authentication initiated: $authResult\")\n        when (authResult.status) {\n            AuthenticationStatus.CHALLENGE_REQUIRED -> {\n                showMessage(\"Please complete 3DS verification\", MessageType.INFO)\n            }\n        }\n    }\n)\n","lang":"kotlin"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"onposttokenisation","__idx":78},"children":["onPostTokenisation"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This callback is triggered after tokenisation completes with the tokenisation result."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["You can use it to:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Store the token reference for future payments."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Update the customer payment methods list."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Trigger a payment flow with the newly created token."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Handle tokenisation errors with appropriate messaging."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Track tokenisation success rates and performance."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Implement card-on-file enrollment flows."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"event-data-25","__idx":79},"children":["Event data"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Parameter"},"children":["Parameter"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["tokenData"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["TokenisationResult"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The tokenisation result object."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["tokenData.tokenisationResult"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["TokenisationResult"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The complete tokenisation result object."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["tokenData.success"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Boolean"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Whether tokenisation was successful."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["tokenData.token"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["CardToken?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Information about the generated token, if tokenisation was successful."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["tokenData.tokenId"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The unique token identifier."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["tokenData.maskedPAN"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The masked Primary Account Number (PAN)."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["tokenData.cardBrand"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["CardBrand"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The detected card brand."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["tokenData.expiryDate"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The card expiry date."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["tokenData.binRange"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The Bank Identification Number (BIN) range."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["tokenData.issuerInfo"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["IssuerInfo"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The card issuer details."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["tokenData.processingTime"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Long"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The time taken for tokenisation, in milliseconds."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["tokenData.vaultProvider"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Token vault provider information."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["tokenData.errorDetails"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["ErrorDetails?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Error information, if tokenisation failed."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["tokenData.timestamp"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Long"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The time and date when tokenisation completed."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"example-implementation-24","__idx":80},"children":["Example implementation"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"kotlin","header":{"controls":{"copy":{}}},"source":"val newCardConfig = NewCardComponentConfig(\n    onPostTokenisation = { tokenData ->\n        Log.d(\"Payment\", \"Card tokenised: $tokenData\")\n        // Store token reference or proceed to payment\n        handleTokenisation(tokenData)\n    }\n)\n","lang":"kotlin"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"onpreauthentication","__idx":81},"children":["onPreAuthentication"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This callback is triggered before 3DS authentication starts."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["You can use it to:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Configure authentication parameters based on transaction risk."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Set custom timeout values for different customer segments."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Add merchant-specific authentication data."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Implement risk-based authentication logic."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Customise the authentication flow based on the card type."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Set up analytics tracking for authentication attempts."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"event-data-26","__idx":82},"children":["Event data"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Parameter"},"children":["Parameter"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["preAuthData"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["PreAuthenticationData"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The pre-authentication data object."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["preAuthData.transactionAmount"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["BigDecimal"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The amount being authenticated."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["preAuthData.currency"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The transaction currency."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["preAuthData.merchantInfo"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["MerchantInfo"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The merchant identification details."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["preAuthData.cardDetails"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["MaskedCardDetails"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The masked card information for authentication."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["preAuthData.customerInfo"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["CustomerData?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The customer data available for authentication."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["preAuthData.deviceFingerprint"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The device fingerprinting data."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["preAuthData.riskData"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["RiskData"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The risk assessment data."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["preAuthData.threeDSMethod"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The 3DS method data, if available."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["preAuthData.timestamp"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Long"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The time and date when pre-authentication started."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"example-implementation-25","__idx":83},"children":["Example implementation"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"kotlin","header":{"controls":{"copy":{}}},"source":"val cardSubmitConfig = CardSubmitComponentConfig(\n    onPreAuthentication = { preAuthData ->\n        Log.d(\"Payment\", \"Starting 3DS authentication: $preAuthData\")\n        return@CardSubmitComponentConfig AuthenticationConfig(\n            acquirerProfileId = \"your-acquirer-id\",\n            providerId = \"your-provider-id\",\n            timeout = 30\n        )\n    }\n)\n","lang":"kotlin"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"onpreauthorisation","__idx":84},"children":["onPreAuthorisation"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This callback is triggered before the transaction authorisation. Return the transaction data."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["You can use it to:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Add address verification (AVV) data for reduced interchange."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Include additional your own  specific authorisation data."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Set custom authorisation parameters based on risk assessment."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Add Level 2/Level 3 processing data for commercial cards."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Include customer loyalty or membership information."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Set specific authorisation modes (e.g., pre-auth vs sale)."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"event-data-27","__idx":85},"children":["Event data"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Parameter"},"children":["Parameter"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["data"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["PreAuthorisationData"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The pre-authorisation data object."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["data.transactionRequest"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["TransactionRequest"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The initial transaction request details."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["data.amount"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["BigDecimal"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The transaction amount to be authorised."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["data.currency"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The transaction currency."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["data.cardDetails"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["MaskedCardDetails"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The masked card information for authorisation."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["data.merchantInfo"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["MerchantInfo"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Merchant identification and configuration."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["data.customerData"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["CustomerData?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The available customer information."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["data.billingAddress"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Address?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The customer's billing address, if provided."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["data.shippingAddress"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Address?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The customer's shipping address, if provided."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["data.orderDetails"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["OrderDetails?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Order line items and metadata."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["data.riskData"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["RiskData"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The risk assessment and fraud detection data."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["data.authenticationResult"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["AuthenticationResult?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The 3DS authentication result, if performed."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["data.timestamp"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Long"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The time and date when pre-authorisation started."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"example-implementation-26","__idx":86},"children":["Example implementation"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"kotlin","header":{"controls":{"copy":{}}},"source":"val cardSubmitConfig = CardSubmitComponentConfig(\n    onPreAuthorisation = { data ->\n        Log.d(\"Payment\", \"Pre-authorisation data: $data\")\n        \n        TransactionInitiationData(\n            psd2Data = null, // Set to Psd2Data(scaExemption = ...) if needed\n            riskScreeningData = RiskScreeningData(\n                performRiskScreening = true,\n                userIp = \"192.168.1.100\",\n                account = RiskScreeningAccount(\n                    id = \"user_12345678\",\n                    creationDateTime = \"2024-01-15T10:30:00.000Z\"\n                ),\n                items = listOf(\n                    RiskScreeningItem(\n                        price = 99.99,\n                        quantity = 1,\n                        category = \"Electronics\"\n                    )\n                ),\n                fulfillments = listOf(\n                    RiskScreeningFulfillment(\n                        type = FulfillmentType.SHIPPED,\n                        shipping = RiskScreeningShipping(\n                            shippingMethod = ShippingMethod.EXPRESS\n                        ),\n                        recipientPerson = RiskScreeningRecipientPerson(\n                            phoneNumber = \"+1234567890\",\n                            email = \"customer@example.com\"\n                        )\n                    )\n                )\n            )\n        )\n    }\n)\n","lang":"kotlin"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"onpredeletetoken","__idx":87},"children":["onPreDeleteToken"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This callback is triggered before a token deletion attempt, allowing you to show custom confirmation dialogs."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["You can use it to:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Show custom confirmation dialogs with token-specific information."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Validate business rules before allowing deletion."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Check for any active subscriptions or recurring payments."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Implement different confirmation flows based on token usage."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Prevent accidental deletion of important payment methods."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Handle the cleanup of related data and preferences."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"event-data-28","__idx":88},"children":["Event data"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Parameter"},"children":["Parameter"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["token"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["CardToken"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The card token object."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["token.token"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["CardToken"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The complete token information to be deleted."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["token.tokenId"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The unique identifier of the token."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["token.maskedPAN"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The masked Primary Account Number (PAN)."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["token.cardBrand"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["CardBrand"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The card brand/scheme."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["token.expiryDate"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The card expiry date."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["token.isDefault"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Boolean"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Whether this is the default payment method."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["token.usageCount"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Int"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The number of times this token has been used."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["token.lastUsed"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Long?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The date and time when the token was last used."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["token.isLinkedToSubscriptions"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Boolean"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Whether the token is used for recurring payments."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["token.linkedSubscriptions"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["List<Subscription>"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The list of active subscriptions using this token."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["token.customerData"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["CustomerData?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Customer information for context."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["token.deletionReason"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["DeletionReason"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The reason for deletion."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["token.canRecover"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Boolean"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Whether deletion can be undone."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["token.timestamp"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Long"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The time and date when deletion was requested."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"example-implementation-27","__idx":89},"children":["Example implementation"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"kotlin","header":{"controls":{"copy":{}}},"source":"val cardOnFileConfig = CardOnFileComponentConfig(\n    onPreDeleteToken = { token ->\n        val confirmed = showConfirmationDialog(\n            title = \"Delete Card\",\n            message = \"Delete card ending in ${token.maskedPrimaryAccountNumber.takeLast(4)}?\",\n            positiveButton = \"Delete\",\n            negativeButton = \"Cancel\"\n        )\n        return@CardOnFileComponentConfig confirmed\n    }\n)\n","lang":"kotlin"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"onpreinitiateauthentication","__idx":90},"children":["onPreInitiateAuthentication"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This callback is triggered before 3DS authentication. Return the authorisation data if you want to proceed with pre-initiating an authentication, ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["null"]}," otherwise."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["You can use it to:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Configure 3DS parameters based on the transaction risk and amount."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Set your own specific authentication data and preferences."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Determine the appropriate 3DS version based on issuer support."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Add customer context for an improved authentication experience."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Implement conditional authentication based on business rules."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Set challenge preferences based on the customer segment."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"event-data-29","__idx":91},"children":["Event data"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Parameter"},"children":["Parameter"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["data"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["PreInitiationData"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The pre-initiation data object."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["data.transactionData"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["TransactionData"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The transaction information for authentication."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["data.cardDetails"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["MaskedCardDetails"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The masked card information."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["data.amount"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["BigDecimal"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The transaction amount."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["data.currency"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The transaction currency."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["data.merchantInfo"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["MerchantInfo"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Merchant configuration and settings."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["data.customerData"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["CustomerData?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Available customer information for authentication."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["data.deviceData"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["DeviceData"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The device fingerprinting and browser information."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["data.riskData"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["RiskData"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The initial risk assessment results."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["data.billingAddress"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Address?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The customer's billing address."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["data.previousAuthAttempts"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["List<AuthAttempt>"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The history of authentication attempts for this transaction."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["data.timestamp"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Long"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The time and date when pre-initiation started."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"example-implementation-28","__idx":92},"children":["Example implementation"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"kotlin","header":{"controls":{"copy":{}}},"source":"val cardSubmitConfig = CardSubmitComponentConfig(\n    onPreInitiateAuthentication = {\n        return@CardSubmitComponentConfig AuthenticationInitData(\n            threeDSecureVersion = \"2.1.0\",\n            merchantName = \"Your Store\"\n        )\n    }\n)\n","lang":"kotlin"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"onpretokenisation","__idx":93},"children":["onPreTokenisation"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This callback is triggered before card tokenisation. To proceed, return ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["true"]},". To cancel, return ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["false"]},"."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["You can use it to:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Validate business rules before allowing tokenisation."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Check for duplicate cards already on file."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Implement customer limits on saved payment methods."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Verify customer eligibility for card-on-file services."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Apply tokenisation policies based on the card type or issuer."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Confirm user consent for saving payment information."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"event-data-30","__idx":94},"children":["Event data"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Parameter"},"children":["Parameter"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["data"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["PreTokenisationData"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The pre-tokenisation data object."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["data.cardData"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["MaskedCardData"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The card information to be tokenised. This is masked for security purposes."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["data.cardBrand"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["CardBrand"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The detected card brand."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["data.binRange"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The Bank Identification Number (BIN) range."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["data.issuerInfo"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["IssuerInfo"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The card issuer information."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["data.cardType"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["CardType"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The type of card."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["data.customerData"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["CustomerData?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The available customer information."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["data.tokenisationMethod"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["TokenisationMethod"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The method of tokenisation."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["data.networkTokenSupport"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Boolean"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Whether network tokenisation is supported."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["data.existingTokens"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["List<CardToken>"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The list of existing tokens for this customer."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["data.duplicateCheck"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["DuplicateCheckResult"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The results of the duplicate card check."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["data.timestamp"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Long"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The time and date when pre-tokenisation started."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"example-implementation-29","__idx":95},"children":["Example implementation"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"kotlin","header":{"controls":{"copy":{}}},"source":"val cardSubmitConfig = CardSubmitComponentConfig(\n    onPreTokenisation = {\n        Log.d(\"Payment\", \"About to tokenise card\")\n        // Check business rules before tokenisation\n        return@CardSubmitComponentConfig validateBusinessRules()\n    }\n)\n","lang":"kotlin"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"onprerendertokens","__idx":96},"children":["onPreRenderTokens"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This callback is triggered after tokens are retrieved but before they're rendered, allowing filtering and transformation."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["You can use it to:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Filter tokens based on business rules or customer preferences."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Transform token display labels with custom formatting."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Apply security policies (e.g., require CVC for certain cards)."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Sort tokens by usage patterns or customer preferences."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Add custom metadata or styling to specific token types."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Implement token visibility rules based on customer tier."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"event-data-31","__idx":97},"children":["Event data"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Parameter"},"children":["Parameter"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["response"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["TokenRetrievalResponse"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The token retrieval response object."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["response.tokenResponse"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["TokenRetrievalResponse"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The complete token retrieval response."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["response.gatewayTokens"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["List<GatewayToken>"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The list of gateway tokens retrieved."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["response.networkTokens"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["List<NetworkToken>?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The list of network tokens, if available."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["response.retrievalTime"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Long"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The time taken to retrieve the tokens."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["response.customerData"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["CustomerData?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Customer information associated with the tokens."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["response.tokenMetadata"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Map<String, Any>?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Additional metadata for each token."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["response.filterCriteria"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["FilterCriteria?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Any applied filter criteria."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["response.sortOptions"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["SortOptions?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The current sorting preferences."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["response.securityContext"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["SecurityContext"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The security context for token access."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["response.timestamp"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Long"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Time and date when token retrieval was completed."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"example-implementation-30","__idx":98},"children":["Example implementation"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"kotlin","header":{"controls":{"copy":{}}},"source":"val cardOnFileConfig = CardOnFileComponentConfig(\n    onPreRenderTokens = { response ->\n        // Filter only Visa cards and mark them as requiring CVC\n        return@CardOnFileComponentConfig response.gatewayTokens\n            .filter { token -> token.scheme == CardBrand.VISA }\n            .map { token ->\n                CardTokenMapping(\n                    id = token.gatewayTokenId,\n                    isCvcRequired = true,\n                    displayLabel = buildCustomLabel(token)\n                )\n            }\n    }\n)\n","lang":"kotlin"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"onretrievetokensfailed","__idx":99},"children":["onRetrieveTokensFailed"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This callback is triggered when the initial request to fetch saved card tokens fails."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["You can use it to:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Display appropriate error messages based on the error type."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Implement retry logic with exponential backoff."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Fallback to alternative token sources or manual entry."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Track token retrieval failures for service monitoring."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Provide an offline mode or cached token access."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Guide users through error resolution steps."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"event-data-32","__idx":100},"children":["Event data"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Parameter"},"children":["Parameter"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["response"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["ErrorResponse"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The error response object."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["response.errorResponse"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["ErrorResponse"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The complete error response object."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["response.errorCode"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The specific error code from the service."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["response.errorMessage"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["A human-readable error message."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["response.errorCategory"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["ErrorCategory"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The category of error."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["response.retryable"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Boolean"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Whether the operation can be retried."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["response.attemptNumber"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Int"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The number of retry attempts made."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["response.requestTime"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Long"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The time taken for the failed request."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["response.customerData"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["CustomerData?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Customer information for context."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["response.requestId"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The unique identifier for the failed request."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["response.timestamp"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Long"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The time and date when the failure occurred."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"example-implementation-31","__idx":101},"children":["Example implementation"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"kotlin","header":{"controls":{"copy":{}}},"source":"val cardOnFileConfig = CardOnFileComponentConfig(\n    onRetrieveTokensFailed = { response ->\n        Log.e(\"Payment\", \"Failed to retrieve tokens: ${response.error}\")\n        // Show fallback UI or error message\n        showErrorMessage(\"Unable to load saved cards. Please try again.\")\n    }\n)\n","lang":"kotlin"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"onstartsubmit","__idx":102},"children":["onStartSubmit"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This callback is triggered when the submission process begins, after validation passes and before tokenisation starts."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["You can use it to:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Show loading indicators to inform users that payment processing has started."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Disable form inputs to prevent duplicate submissions."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Track submission start time for performance monitoring."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Display progress messages to improve user experience during payment processing."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Log submission events for analytics and debugging."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"event-data-33","__idx":103},"children":["Event data"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This callback doesn't receive any parameters."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"example-implementation-32","__idx":104},"children":["Example implementation"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"kotlin","header":{"controls":{"copy":{}}},"source":"val cardSubmitConfig = CardSubmitComponentConfig(\n    cardNumberComponent = cardNumberComponent,\n    cardExpiryDateComponent = cardExpiryComponent,\n    cardCvcComponent = cardCvcComponent,\n    \n    onStartSubmit = {\n        Log.d(\"CardSubmit\", \"Payment submission starting\")\n        \n        // Show loading indicator\n        runOnUiThread {\n            loadingOverlay.visibility = View.VISIBLE\n            submitButton.isEnabled = false\n        }\n        \n        // Show progress message\n        showMessage(\"Processing your payment...\", MessageType.INFO)\n        \n        // Track submission start\n        analytics.track(\"payment_submission_started\", mapOf(\n            \"timestamp\" to System.currentTimeMillis()\n        ))\n    },\n    \n    onPostAuthorisation = { result ->\n        // Hide loading indicator\n        runOnUiThread {\n            loadingOverlay.visibility = View.GONE\n        }\n        \n        if (result.isSuccess) {\n            showMessage(\"Payment successful!\", MessageType.SUCCESS)\n        }\n    },\n    \n    onSubmitError = { error ->\n        // Hide loading and re-enable button on error\n        runOnUiThread {\n            loadingOverlay.visibility = View.GONE\n            submitButton.isEnabled = true\n        }\n        \n        showMessage(\"Payment failed: ${error.message}\", MessageType.ERROR)\n    }\n)\n","lang":"kotlin"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"onsubmiterror","__idx":105},"children":["onSubmitError"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This callback is triggered when submission fails. For example, due to network issues or a payment processor rejection."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["You can use it to:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Show user-friendly error messages."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Implement retry logic for transient failures."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Track submission failure rates."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Log errors for debugging."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Provide alternative payment methods."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"event-data-34","__idx":106},"children":["Event data"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Parameter"},"children":["Parameter"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["error"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["SdkException"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The error object."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["error.error"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["SdkException"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The error details and error code."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["error.errorMessage"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["A human-readable error message."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["error.errorType"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["ErrorType"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The type of error (network, validation, server, etc.)."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["error.retryable"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Boolean"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Whether the operation can be retried."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["error.submissionData"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The data that was being submitted (sanitised)."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"example-implementation-33","__idx":107},"children":["Example implementation"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"kotlin","header":{"controls":{"copy":{}}},"source":"val cardSubmitConfig = CardSubmitComponentConfig(\n    onSubmitError = { error ->\n        Log.e(\"Payment\", \"Submit error: ${error.message}\")\n        Log.e(\"Payment\", \"Error type: ${error.errorType}\")\n        Log.e(\"Payment\", \"Retryable: ${error.retryable}\")\n        \n        // Show appropriate error message based on error type\n        val userMessage = when (error.errorType) {\n            ErrorType.NETWORK -> \"Network error. Please check your connection and try again.\"\n            ErrorType.SERVER -> \"Server error. Please try again in a moment.\"\n            ErrorType.VALIDATION -> \"Please check your payment information and try again.\"\n            ErrorType.PAYMENT_DECLINED -> \"Payment was declined. Please try a different card.\"\n            ErrorType.AUTHENTICATION -> \"Authentication failed. Please verify your details.\"\n            else -> \"Payment failed. Please try again.\"\n        }\n        \n        showErrorDialog(userMessage)\n        \n        // Enable retry if appropriate\n        if (error.retryable) {\n            showRetryOption {\n                retryPaymentSubmission()\n            }\n        } else {\n            // Suggest alternative payment methods\n            showAlternativePaymentOptions()\n        }\n        \n        // Track submission errors\n        analytics.track(\"payment_submission_failed\", mapOf(\n            \"error_code\" to error.code,\n            \"error_type\" to error.errorType.name,\n            \"retryable\" to error.retryable,\n            \"payment_method\" to getCurrentPaymentMethod()\n        ))\n        \n        handlePaymentError(error)\n    }\n)\n","lang":"kotlin"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"onupdatetokenfailed","__idx":108},"children":["onUpdateTokenFailed"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This callback is triggered when updating card token information (e.g., expiry date) fails."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["You can use it to:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Display specific error messages based on the failure type."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Implement retry logic for transient failures."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Revert UI changes if the update fails."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Guide users through correcting invalid data."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Track update failure patterns for service improvement."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Provide fallback options for critical updates."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"event-data-35","__idx":109},"children":["Event data"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Parameter"},"children":["Parameter"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["response"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["UpdateFailureResponse"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The update failure response object."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["response.updateResponse"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["UpdateFailureResponse"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The complete update failure response."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["response.tokenId"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The ID of the token that failed to update."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["response.updateFields"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["List<String>"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The fields that were being updated."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["response.errorCode"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The specific error code from the service."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["response.errorMessage"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["A human-readable error message."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["response.errorCategory"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["ErrorCategory"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The category of error."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["response.retryable"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Boolean"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Whether the update operation can be retried."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["response.originalToken"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["CardToken"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The original token data before the update attempt."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["response.attemptedChanges"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Map<String, Any>"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The changes that were attempted."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["response.timestamp"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Long"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The time and date when the update failure occurred."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"example-implementation-34","__idx":110},"children":["Example implementation"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"kotlin","header":{"controls":{"copy":{}}},"source":"val cardOnFileConfig = CardOnFileComponentConfig(\n    onUpdateTokenFailed = { response ->\n        Log.e(\"Payment\", \"Token update failed: ${response.error}\")\n        // Show error message to user\n        showErrorMessage(\"Failed to update card information\")\n    }\n)\n","lang":"kotlin"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"onupdatetokensuccess","__idx":111},"children":["onUpdateTokenSuccess"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This callback is triggered when card token information is successfully updated."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["You can use it to:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Update the UI display with new token information."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Show success confirmation to user."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Trigger token synchronisation across user devices."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Update the cached token data locally."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Track successful update patterns for analytics."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Refresh related payment components."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"event-data-36","__idx":112},"children":["Event data"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Parameter"},"children":["Parameter"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["response"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["UpdateSuccessResponse"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The update success response object."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["response.updateResponse"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["UpdateSuccessResponse"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The complete update success response."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["response.tokenId"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The ID of the successfully updated token."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["response.updatedToken"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["CardToken"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The updated token with new information."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["response.updatedFields"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["List<String>"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The list of fields that were successfully updated."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["response.previousValues"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Map<String, Any>"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The previous values before the update."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["response.updateTime"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Long"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The time taken to complete the update."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["response.networkToken"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Boolean"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Whether this token has network tokenisation."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["response.vaultProvider"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The token vault provider information."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["response.synchronizedDevices"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["List<String>"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The list of devices where the token was synchronised."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["response.timestamp"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Long"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The time and date when the update completed."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"example-implementation-35","__idx":113},"children":["Example implementation"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"kotlin","header":{"controls":{"copy":{}}},"source":"val cardOnFileConfig = CardOnFileComponentConfig(\n    onUpdateTokenSuccess = { response ->\n        Log.d(\"Payment\", \"Token updated successfully: $response\")\n        // Refresh display with new information\n        showSuccessMessage(\"Card information updated\")\n        refreshCardDisplay()\n    }\n)\n","lang":"kotlin"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"onvalidation","__idx":114},"children":["onValidation"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This callback is triggered when form validation occurs across multiple fields."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["You can use it to:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Display comprehensive validation feedback,"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Enable or disable submit buttons."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Track form completion progress."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Implement multi-field validation rules."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Provide summary error messages."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"event-data-37","__idx":115},"children":["Event data"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Parameter"},"children":["Parameter"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["validationEvent"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["ValidationEvent"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The validation event object."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["validationEvent.validationResults"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["List<ValidationResult>"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The list of validation results for all fields."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["validationEvent.isFormValid"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Boolean"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Whether the entire form is valid."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["validationEvent.fieldCount"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Int"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The number of fields validated."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["validationEvent.errorCount"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Int"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The number of fields with errors."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["validationEvent.triggerSource"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["ValidationTrigger"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["What triggered the validation."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"example-implementation-36","__idx":116},"children":["Example implementation"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"kotlin","header":{"controls":{"copy":{}}},"source":"val newCardConfig = NewCardComponentConfig(\n    onValidation = { validationEvent ->\n        Log.d(\"Payment\", \"Form validation triggered\")\n        Log.d(\"Payment\", \"Form valid: ${validationEvent.isFormValid}\")\n        Log.d(\"Payment\", \"Error count: ${validationEvent.errorCount}\")\n        \n        // Update submit button state\n        updateSubmitButtonState(validationEvent.isFormValid)\n        \n        // Process each field's validation result\n        validationEvent.validationResults.forEach { result ->\n            if (!result.isValid && result.errors.isNotEmpty()) {\n                result.errors.forEach { error ->\n                    Log.e(\"Validation\", \"${result.fieldName}: ${error.message} (${error.code})\")\n                    showFieldError(result.fieldName, error.message)\n                }\n            } else {\n                clearFieldError(result.fieldName)\n            }\n        }\n        \n        // Track validation metrics\n        analytics.track(\"form_validation\", mapOf(\n            \"is_valid\" to validationEvent.isFormValid,\n            \"error_count\" to validationEvent.errorCount,\n            \"field_count\" to validationEvent.fieldCount,\n            \"trigger_source\" to validationEvent.triggerSource\n        ))\n    }\n)\n","lang":"kotlin"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"onvalidationfailed","__idx":117},"children":["onValidationFailed"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This callback is triggered when validation fails for a single field."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["You can use it to:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Show field-specific error messages."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Update the field styling to indicate errors."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Disable form submission."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Guide the user to correct input."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Track validation failure patterns."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"event-data-38","__idx":118},"children":["Event data"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Parameter"},"children":["Parameter"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["validationResult"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["ValidationResult"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The validation result object."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["validationResult.fieldName"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The name of the field that failed validation."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["validationResult.value"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The current field value."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["validationResult.errors"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["List<ValidationFieldError>"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The list of validation errors."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["validationResult.errorCodes"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["List<String>"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The specific error codes."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["validationResult.validationTrigger"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["ValidationTrigger"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["What triggered the validation."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"example-implementation-37","__idx":119},"children":["Example implementation"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"kotlin","header":{"controls":{"copy":{}}},"source":"val cardNumberConfig = CardNumberComponentConfig(\n    onValidationFailed = { validationResult ->\n        Log.e(\"Validation\", \"Card number validation failed\")\n        Log.e(\"Validation\", \"Errors: ${validationResult.errors}\")\n        \n        // Show specific error message\n        val primaryError = validationResult.errors.firstOrNull()\n        if (primaryError != null) {\n            showFieldError(\"card_number\", primaryError.message)\n        }\n        \n        // Update field appearance\n        updateFieldAppearance(\"card_number\", hasError = true)\n        \n        // Disable submit if needed\n        if (validationResult.blockSubmission) {\n            disableSubmitButton()\n        }\n        \n        // Track validation failures\n        analytics.track(\"field_validation_failed\", mapOf(\n            \"field\" to \"card_number\",\n            \"error_codes\" to validationResult.errors.map { it.code },\n            \"trigger\" to validationResult.validationTrigger\n        ))\n    }\n)\n","lang":"kotlin"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"onvalidationpassed","__idx":120},"children":["onValidationPassed"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This callback is triggered when validation is successful for a single field."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["You can use it to:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Clear error messages and styling."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Enable progression to the next field."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Update form completion progress."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Enable the submit button when all fields valid."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Provide positive feedback."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"event-data-39","__idx":121},"children":["Event data"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Parameter"},"children":["Parameter"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["validationResult"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["ValidationResult"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The validation result object."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["validationResult.fieldName"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The name of the field that passed validation."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["validationResult.value"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The current valid field value."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["validationResult.validationDuration"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Long"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The time taken for validation in milliseconds."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["validationResult.validationTrigger"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["ValidationTrigger"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["What triggered the validation."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"example-implementation-38","__idx":122},"children":["Example implementation"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"kotlin","header":{"controls":{"copy":{}}},"source":"val cardNumberConfig = CardNumberComponentConfig(\n    onValidationPassed = { validationResult ->\n        Log.d(\"Validation\", \"Card number validation passed\")\n        Log.d(\"Validation\", \"Value: ${validationResult.value}\")\n        \n        // Clear any error states\n        clearFieldError(\"card_number\")\n        \n        // Update field appearance to show success\n        updateFieldAppearance(\"card_number\", hasError = false, isValid = true)\n        \n        // Check if all fields are now valid\n        if (isFormValid()) {\n            enableSubmitButton()\n        }\n        \n        // Auto-advance to next field if configured\n        if (shouldAutoAdvance()) {\n            focusNextField(\"expiry_date\")\n        }\n        \n        // Track successful validation\n        analytics.track(\"field_validation_passed\", mapOf(\n            \"field\" to \"card_number\",\n            \"validation_duration\" to validationResult.validationDuration,\n            \"trigger\" to validationResult.validationTrigger\n        ))\n    }\n)\n","lang":"kotlin"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"tokenitembuilder","__idx":123},"children":["tokenItemBuilder"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This callback is called when each token item's user interface is being constructed, allowing you to customise the layout."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["You can use it to:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Create custom layouts for token display items."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Implement brand-specific styling and theming."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Add interactive elements and action buttons."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Display custom metadata or promotional information."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Implement accessibility enhancements."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Add animations and visual feedback."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"event-data-40","__idx":124},"children":["Event data"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Parameter"},"children":["Parameter"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["elementIds"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["TokenElementIds"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The token element IDs object."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["elementIds.elementIds"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["TokenElementIds"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The UI element identifiers and references for the token."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["elementIds.tokenData"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["CardToken"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The complete token information for customisation."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["elementIds.displayState"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["DisplayState"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The current display state."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["elementIds.interactionState"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["InteractionState"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The user interaction state."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["elementIds.tokenImageId"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The image resource or URL for the card brand."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["elementIds.tokenLabelId"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The formatted display label for the token."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["elementIds.expiryDateId"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The formatted expiry date string."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["elementIds.isDefault"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Boolean"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Whether this token is the default payment method."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["elementIds.isExpired"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Boolean"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Whether the token has expired."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["elementIds.metadata"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Map<String, Any>?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Additional metadata for customisation."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["elementIds.availableActions"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["List<TokenAction>"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The list of actions available for this token."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"example-implementation-39","__idx":125},"children":["Example implementation"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"kotlin","header":{"controls":{"copy":{}}},"source":"val cardOnFileConfig = CardOnFileComponentConfig(\n    tokenItemBuilder = { elementIds ->\n        // Return a custom Composable for the token item\n        @Composable\n        fun CustomTokenItem() {\n            Row(\n                modifier = Modifier\n                    .fillMaxWidth()\n                    .padding(12.dp),\n                verticalAlignment = Alignment.CenterVertically\n            ) {\n                // Card brand image\n                AsyncImage(\n                    model = elementIds.tokenImageId,\n                    contentDescription = \"Card brand\",\n                    modifier = Modifier.size(32.dp)\n                )\n                \n                Spacer(modifier = Modifier.width(12.dp))\n                \n                // Card label\n                Text(\n                    text = elementIds.tokenLabelId,\n                    modifier = Modifier.weight(1f),\n                    style = MaterialTheme.typography.bodyMedium\n                )\n                \n                // Expiry date\n                Text(\n                    text = elementIds.expiryDateId,\n                    style = MaterialTheme.typography.bodySmall,\n                    color = MaterialTheme.colorScheme.onSurfaceVariant\n                )\n                \n                Spacer(modifier = Modifier.width(8.dp))\n                \n                // Action buttons\n                Row {\n                    IconButton(onClick = { /* Edit action */ }) {\n                        Icon(Icons.Default.Edit, contentDescription = \"Edit\")\n                    }\n                    IconButton(onClick = { /* Delete action */ }) {\n                        Icon(Icons.Default.Delete, contentDescription = \"Delete\")\n                    }\n                }\n            }\n        }\n        \n        return@CardOnFileComponentConfig CustomTokenItem()\n    }\n)\n","lang":"kotlin"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"tokenlabelbuilder","__idx":126},"children":["tokenLabelBuilder"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This callback is called to generate the display text for each card token. It replaces the default masked card number."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["You can use it to:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Customise the token display format."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Add issuer-specific information."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Implement localised display."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Include expiry information."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Show token metadata."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"event-data-41","__idx":127},"children":["Event data"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Parameter"},"children":["Parameter"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["token"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["CardToken"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The card token object."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["token.token"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["CardToken"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The card token object."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["token.maskedNumber"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The masked card number."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["token.scheme"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The card scheme/brand."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["token.issuerName"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The name of the card issuer."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["token.expiryDate"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The card expiry date."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"example-implementation-40","__idx":128},"children":["Example implementation"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"kotlin","header":{"controls":{"copy":{}}},"source":"val cardOnFileConfig = CardOnFileComponentConfig(\n    tokenLabelBuilder = { token ->\n        \"${token.scheme.name} •••• ${token.maskedPrimaryAccountNumber.takeLast(4)} - ${token.issuerName}\"\n    }\n)\n","lang":"kotlin"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"onconsentchanged","__idx":129},"children":["onConsentChanged"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This callback is triggered when the consent state changes."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["You can use it to:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Update the UI based on consent state."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Enable or disable related features."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Track consent compliance."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Validate form submission."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Update user preferences."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Trigger legal compliance checks."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"event-data-42","__idx":130},"children":["Event data"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Parameter"},"children":["Parameter"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["event"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["ConsentChangedEvent"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The consent changed event object."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["event.consentType"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["ConsentType"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The type of consent being changed."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["event.previousState"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Boolean"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The previous checkbox state."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["event.newState"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Boolean"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The new checkbox state."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["event.userInitiated"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Boolean"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Whether the change was user-initiated."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["event.timestamp"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Long"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Time and date when the change occurred."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["event.metadata"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Map<String, Any>?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Additional consent metadata."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"example-implementation-41","__idx":131},"children":["Example implementation"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"kotlin","header":{"controls":{"copy":{}}},"source":"val cardConsentConfig = CardConsentComponentConfig(\n    onConsentChanged = { event ->\n        Log.d(\"Consent\", \"Consent changed: ${event.consentType}\")\n        Log.d(\"Consent\", \"Previous: ${event.previousState}, New: ${event.newState}\")\n        \n        when (event.consentType) {\n            ConsentType.SAVE_CARD -> {\n                if (event.newState == ConsentState.CHECKED) {\n                    enableCardSaving()\n                    showCardSavingBenefits()\n                } else {\n                    disableCardSaving()\n                    hideCardSavingOptions()\n                }\n            }\n            ConsentType.MARKETING_EMAILS -> {\n                updateMarketingPreferences(event.newState == ConsentState.CHECKED)\n            }\n            ConsentType.BIOMETRIC_AUTH -> {\n                if (event.newState == ConsentState.CHECKED) {\n                    requestBiometricSetup()\n                } else {\n                    disableBiometricAuth()\n                }\n            }\n        }\n        \n        // Update form validation\n        validateFormConsent()\n        \n        // Track consent analytics\n        analytics.track(\"consent_changed\", mapOf(\n            \"consent_type\" to event.consentType.name,\n            \"previous_state\" to event.previousState.name,\n            \"new_state\" to event.newState.name,\n            \"user_initiated\" to event.userInitiated\n        ))\n    }\n)\n","lang":"kotlin"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"ontermsclicked","__idx":132},"children":["onTermsClicked"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This callback is triggered when a terms and conditions link is clicked."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["You can use it to:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Track user engagement with legal documents."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Customise the terms and conditions' presentation."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Implement custom browser behaviour."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Log legal compliance events."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Provide accessibility support."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"event-data-43","__idx":133},"children":["Event data"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Parameter"},"children":["Parameter"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["event"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["TermsClickedEvent"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The terms clicked event object."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["event.termsUrl"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The URL of the terms document."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["event.clickLocation"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Point"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The click coordinates on screen."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["event.openMode"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["OpenMode"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["How the terms should be opened."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["event.timestamp"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Long"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["When the click occurred."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["event.linkText"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The text of the clicked link."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"example-implementation-42","__idx":134},"children":["Example implementation"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"kotlin","header":{"controls":{"copy":{}}},"source":"val cardConsentConfig = CardConsentComponentConfig(\n    onTermsClicked = { event ->\n        Log.d(\"Legal\", \"Terms clicked: ${event.termsUrl}\")\n        Log.d(\"Legal\", \"Open mode: ${event.openMode}\")\n        \n        when (event.openMode) {\n            LinkOpenMode.IN_APP_BROWSER -> {\n                openInAppBrowser(event.termsUrl)\n            }\n            LinkOpenMode.MODAL_DIALOG -> {\n                showTermsModal(event.termsUrl)\n            }\n            LinkOpenMode.BOTTOM_SHEET -> {\n                showTermsBottomSheet(event.termsUrl)\n            }\n            else -> {\n                openExternalBrowser(event.termsUrl)\n            }\n        }\n        \n        // Track legal document engagement\n        analytics.track(\"terms_clicked\", mapOf(\n            \"url\" to event.termsUrl,\n            \"open_mode\" to event.openMode.name,\n            \"link_text\" to event.linkText\n        ))\n    }\n)\n","lang":"kotlin"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"onprivacyclicked","__idx":135},"children":["onPrivacyClicked"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This callback is triggered when a privacy link is clicked."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["You can use it to:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Track privacy policy engagement."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Customise the privacy policy's presentation."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Implement custom browser behaviour."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Log privacy compliance events."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Support GDPR requirements."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"event-data-44","__idx":136},"children":["Event data"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Parameter"},"children":["Parameter"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["event"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["PrivacyClickedEvent"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The privacy clicked event object."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["event.privacyUrl"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The URL of the privacy policy."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["event.clickLocation"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Point"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The click coordinates on screen."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["event.openMode"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["OpenMode"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["How the privacy policy should be opened."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["event.timestamp"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Long"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["When the click occurred."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["event.linkText"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The text of the clicked link."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"example-implementation-43","__idx":137},"children":["Example implementation"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"kotlin","header":{"controls":{"copy":{}}},"source":"val cardConsentConfig = CardConsentComponentConfig(\n    onPrivacyClicked = { event ->\n        Log.d(\"Privacy\", \"Privacy policy clicked: ${event.privacyUrl}\")\n        Log.d(\"Privacy\", \"Open mode: ${event.openMode}\")\n        \n        // Handle privacy policy display\n        when (event.openMode) {\n            LinkOpenMode.IN_APP_BROWSER -> {\n                openInAppBrowser(event.privacyUrl)\n            }\n            LinkOpenMode.MODAL_DIALOG -> {\n                showPrivacyModal(event.privacyUrl)\n            }\n            LinkOpenMode.BOTTOM_SHEET -> {\n                showPrivacyBottomSheet(event.privacyUrl)\n            }\n            else -> {\n                openExternalBrowser(event.privacyUrl)\n            }\n        }\n        \n        // Track privacy engagement for compliance\n        analytics.track(\"privacy_clicked\", mapOf(\n            \"url\" to event.privacyUrl,\n            \"open_mode\" to event.openMode.name,\n            \"link_text\" to event.linkText,\n            \"compliance_required\" to isGDPRRequired()\n        ))\n    }\n)\n","lang":"kotlin"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"onstatechanged","__idx":138},"children":["onStateChanged"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This callback is triggered when the pre-fill billing address checkbox state changes."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["You can use it to:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Update UI based on state."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Trigger address synchronisation."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Track user interactions."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Validate form state."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Enable/disable related components."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"event-data-45","__idx":139},"children":["Event data"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Parameter"},"children":["Parameter"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["event"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["StateChangedEvent"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The state changed event object."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["event.previousState"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Boolean"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The previous checkbox state."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["event.newState"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Boolean"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The new checkbox state."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["event.userInitiated"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Boolean"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Whether the change was user-initiated."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["event.timestamp"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Long"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["When the change occurred."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["event.hasShippingAddress"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Boolean"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Whether the shipping address is available."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"example-implementation-44","__idx":140},"children":["Example implementation"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"kotlin","header":{"controls":{"copy":{}}},"source":"val preFillCheckboxConfig = PreFillBillingAddressCheckboxComponentConfig(\n    onStateChanged = { event ->\n        Log.d(\"PreFill\", \"Checkbox state changed: ${event.previousState} -> ${event.newState}\")\n        Log.d(\"PreFill\", \"User initiated: ${event.userInitiated}\")\n        \n        when (event.newState) {\n            CheckboxState.CHECKED -> {\n                if (event.hasShippingAddress) {\n                    // Start address synchronisation\n                    startAddressSync()\n                    showSyncProgress()\n                } else {\n                    // Show message about needing shipping address first\n                    showMissingShippingAddressMessage()\n                    // Revert checkbox state\n                    revertCheckboxState()\n                }\n            }\n            CheckboxState.UNCHECKED -> {\n                // Clear billing address form\n                clearBillingAddressForm()\n                enableBillingAddressEditing()\n                hideSyncProgress()\n            }\n        }\n        \n        // Update form validation\n        validateBillingAddressForm()\n        \n        // Track interaction analytics\n        analytics.track(\"prefill_state_changed\", mapOf(\n            \"previous_state\" to event.previousState.name,\n            \"new_state\" to event.newState.name,\n            \"user_initiated\" to event.userInitiated,\n            \"has_shipping_address\" to event.hasShippingAddress\n        ))\n    }\n)\n","lang":"kotlin"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"onaddresssync","__idx":141},"children":["onAddressSync"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This callback is triggered when address synchronisation starts."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["You can use it to:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Show loading indicators."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Track sync performance."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Update the progress UI."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Log sync operations."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Handle concurrent sync requests."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"event-data-46","__idx":142},"children":["Event data"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Parameter"},"children":["Parameter"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["event"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["AddressSyncEvent"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The address sync event object."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["event.sourceAddress"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Address"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The shipping address being copied."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["event.targetComponentId"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The ID of the billing address component."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["event.syncedFields"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["List<String>"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The list of fields being synchronised."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["event.syncStrategy"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["SyncStrategy"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The strategy used for synchronisation."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["event.startTime"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Long"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["When the sync operation started."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"example-implementation-45","__idx":143},"children":["Example implementation"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"kotlin","header":{"controls":{"copy":{}}},"source":"val preFillCheckboxConfig = PreFillBillingAddressCheckboxComponentConfig(\n    onAddressSync = { event ->\n        Log.d(\"AddressSync\", \"Starting address sync\")\n        Log.d(\"AddressSync\", \"Source: ${event.sourceAddress}\")\n        Log.d(\"AddressSync\", \"Strategy: ${event.syncStrategy}\")\n        Log.d(\"AddressSync\", \"Fields: ${event.syncedFields.joinToString()}\")\n        \n        // Show loading UI\n        showAddressSyncLoading()\n        \n        // Update progress indicators\n        updateSyncProgress(0, event.syncedFields.size)\n        \n        // Track sync start\n        analytics.track(\"address_sync_started\", mapOf(\n            \"sync_strategy\" to event.syncStrategy.name,\n            \"field_count\" to event.syncedFields.size,\n            \"target_component\" to event.targetComponentId\n        ))\n        \n        // Log for debugging\n        logSyncOperation(\"started\", event)\n    }\n)\n","lang":"kotlin"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"onsynccomplete","__idx":144},"children":["onSyncComplete"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This callback is triggered when address synchronisation completes."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["You can use it to:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Hide loading indicators."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Update the billing form fields."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Show success feedback."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Enable form submission."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Cache sync results."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Handle sync errors."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"event-data-47","__idx":145},"children":["Event data"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Parameter"},"children":["Parameter"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["event"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["SyncCompleteEvent"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The sync complete event object."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["event.sourceAddress"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Address"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The original shipping address."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["event.targetAddress"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Address"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The resulting billing address."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["event.syncedFields"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["List<String>"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Fields that were synchronised."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["event.syncDuration"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Long"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Time taken for sync operation."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["event.success"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Boolean"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Whether sync completed successfully."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["event.errors"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["List<String>?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Any errors that occurred during sync."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"example-implementation-46","__idx":146},"children":["Example implementation"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"kotlin","header":{"controls":{"copy":{}}},"source":"val preFillCheckboxConfig = PreFillBillingAddressCheckboxComponentConfig(\n    onSyncComplete = { event ->\n        Log.d(\"AddressSync\", \"Address sync completed\")\n        Log.d(\"AddressSync\", \"Success: ${event.success}\")\n        Log.d(\"AddressSync\", \"Duration: ${event.syncDuration}ms\")\n        \n        // Hide loading UI\n        hideAddressSyncLoading()\n        \n        if (event.success) {\n            // Update billing form with synced data\n            updateBillingAddressForm(event.targetAddress)\n            \n            // Show success feedback\n            showSyncSuccessMessage()\n            \n            // Disable billing address editing\n            disableBillingAddressEditing()\n            \n            // Enable form submission\n            enableFormSubmission()\n        } else {\n            // Handle sync errors\n            handleSyncErrors(event.errors)\n            \n            // Show error message\n            showSyncErrorMessage()\n            \n            // Revert checkbox state\n            revertCheckboxState()\n            \n            // Re-enable editing\n            enableBillingAddressEditing()\n        }\n        \n        // Track completion analytics\n        analytics.track(\"address_sync_completed\", mapOf(\n            \"success\" to event.success,\n            \"duration\" to event.syncDuration,\n            \"field_count\" to event.syncedFields.size,\n            \"error_count\" to event.errors?.size ?: 0\n        ))\n        \n        // Log for debugging\n        logSyncOperation(\"completed\", event)\n    }\n)\n","lang":"kotlin"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"ontriggerfieldvalidation","__idx":147},"children":["onTriggerFieldValidation"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This callback is triggered when individual field validation is performed."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["You can use it to:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Show real-time validation feedback."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Implement custom validation logic."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Update field-specific error messages."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Track validation performance."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Provide accessibility announcements."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Enable progressive form completion."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"event-data-48","__idx":148},"children":["Event data"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Parameter"},"children":["Parameter"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["validationResult"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["FieldValidationResult"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The field validation result object."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["validationResult.fieldName"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The name of the field being validated."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["validationResult.isValid"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Boolean"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Whether the field passed validation."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["validationResult.errorCode"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The specific error code, if validation failed."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["validationResult.errorMessage"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["A human-readable error message."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["validationResult.validationType"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["ValidationType"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The type of validation performed."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"common-scenarios","__idx":149},"children":["Common scenarios"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"handle-a-declined-transaction","__idx":150},"children":["Handle a declined transaction"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The following snippet is an example of how you might handle a declined transaction when using the card submit component."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"kotlin","header":{"controls":{"copy":{}}},"source":"val cardSubmitConfig = CardSubmitComponentConfig(\n    onPostAuthorisation = { submitResult ->\n        Log.d(\"Payment\", \"Transaction result: $submitResult\")\n        \n        when (submitResult.status) {\n            TransactionStatus.REFUSED -> {\n                // Transaction was declined by the issuer or payment provider\n                val refusedResult = submitResult as RefusedSubmitResult\n                handleDeclinedTransaction(refusedResult)\n            }\n            TransactionStatus.AUTHORISED -> {\n                // Transaction was successful\n                handleSuccessfulTransaction(submitResult)\n            }\n            TransactionStatus.ERROR -> {\n                // System error occurred\n                handleSystemError(submitResult)\n            }\n            TransactionStatus.PENDING -> {\n                // Transaction is pending further processing\n                handlePendingTransaction(submitResult)\n            }\n        }\n    }\n)\n\nprivate fun handleDeclinedTransaction(refusedResult: RefusedSubmitResult) {\n    // Extract decline information\n    val stateData = refusedResult.stateData\n    val providerResponse = refusedResult.providerResponse\n    val fundingData = refusedResult.fundingData\n    \n    // Log decline details\n    Log.w(\"Payment\", \"Transaction declined: \" +\n        \"stateCode=${stateData?.code}, \" +\n        \"stateMessage=${stateData?.message}, \" +\n        \"providerCode=${providerResponse?.code}, \" +\n        \"providerMessage=${providerResponse?.message}\"\n    )\n    \n    // Show user-friendly error message based on decline reason\n    val declineCode = providerResponse?.code\n    val userMessage = when (declineCode) {\n        \"INSUFFICIENT_FUNDS\" -> getString(R.string.error_insufficient_funds)\n        \"EXPIRED_CARD\" -> getString(R.string.error_expired_card)\n        \"INVALID_CVV\" -> getString(R.string.error_invalid_cvv)\n        \"CARD_BLOCKED\" -> getString(R.string.error_card_blocked)\n        \"LIMIT_EXCEEDED\" -> getString(R.string.error_limit_exceeded)\n        else -> {\n            // Use merchant advice if available\n            providerResponse?.merchantAdvice?.message \n                ?: getString(R.string.error_payment_declined_generic)\n        }\n    }\n    \n    // Display error to user\n    showErrorDialog(userMessage)\n    \n    // Check if retry is recommended\n    when (providerResponse?.merchantAdvice?.code) {\n        \"RETRY\" -> enableRetryOption()\n        \"DO_NOT_RETRY\" -> {\n            disableRetryOption()\n            suggestAlternativePayment()\n        }\n    }\n    \n    // Log analytics event for declined transaction\n    analytics.track(\"payment_declined\", mapOf(\n        \"decline_code\" to declineCode,\n        \"state_code\" to stateData?.code\n    ))\n}\n\nprivate fun showErrorDialog(message: String) {\n    AlertDialog.Builder(this)\n        .setTitle(getString(R.string.payment_failed))\n        .setMessage(message)\n        .setPositiveButton(getString(R.string.ok)) { dialog, _ ->\n            dialog.dismiss()\n        }\n        .show()\n}\n","lang":"kotlin"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"handle-an-authentication-failure","__idx":151},"children":["Handle an authentication failure"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The following snippet is an example of how you might handle authentication problems when using the card submit component."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"kotlin","header":{"controls":{"copy":{}}},"source":"val cardSubmitConfig = CardSubmitComponentConfig(\n    onSubmitError = { error ->\n        Log.e(\"Payment\", \"Submit error occurred: $error\")\n        \n        // Handle different types of authentication and processing errors\n        when (error.errorCode) {\n            \"SDK0503\" -> { // Transaction authentication rejected\n                showErrorDialog(getString(R.string.error_authentication_rejected))\n                enableRetryOption()\n            }\n            \"SDK0505\" -> { // Transaction authentication failed\n                showErrorDialog(getString(R.string.error_authentication_failed))\n                enableRetryOption()\n            }\n            \"SDK0504\" -> { // SCA exemption required\n                showErrorDialog(getString(R.string.error_sca_exemption_required))\n                // Handle SCA exemption flow\n                handleScaExemption()\n            }\n            else -> {\n                // Generic error handling\n                showErrorDialog(getString(R.string.error_payment_processing_failed))\n                logError(error)\n            }\n        }\n    }\n)\n\nprivate fun handleScaExemption() {\n    // Implement SCA exemption handling logic\n    // This might involve redirecting to a different flow or\n    // requesting additional authentication\n}\n\nprivate fun enableRetryOption() {\n    // Enable retry button or show retry dialog\n    showRetryDialog()\n}\n\nprivate fun showRetryDialog() {\n    AlertDialog.Builder(this)\n        .setTitle(getString(R.string.payment_failed))\n        .setMessage(getString(R.string.retry_payment_question))\n        .setPositiveButton(getString(R.string.retry)) { _, _ ->\n            retryPayment()\n        }\n        .setNegativeButton(getString(R.string.cancel)) { dialog, _ ->\n            dialog.dismiss()\n        }\n        .show()\n}\n\nprivate fun retryPayment() {\n    // Reset form and allow user to retry\n    clearFormErrors()\n    enablePaymentForm()\n}\n","lang":"kotlin"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"complete-payment-flow-example","__idx":152},"children":["Complete payment flow example"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Here's a complete example showing how to set up a payment flow with comprehensive event handling:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"kotlin","header":{"controls":{"copy":{}}},"source":"class PaymentActivity : ComponentActivity() {\n    private lateinit var pxpCheckout: PxpCheckout\n    private lateinit var newCardComponent: NewCardComponent\n    \n    override fun onCreate(savedInstanceState: Bundle?) {\n        super.onCreate(savedInstanceState)\n        \n        setupPxpCheckout()\n        setupNewCardComponent()\n        \n        setContent {\n            PaymentScreen()\n        }\n    }\n    \n    private fun setupPxpCheckout() {\n        val sdkConfig = PxpSdkConfig(\n            environment = Environment.TEST,\n            session = SessionConfig(\n                sessionId = \"your_session_id\",\n                sessionData = \"your_session_data\"\n            ),\n            transactionData = TransactionData(\n                amount = 100.0,\n                currency = CurrencyType.USD,\n                merchant = \"your_merchant_id\"\n            ),\n            clientId = \"your_client_id\"\n        )\n        \n        pxpCheckout = PxpCheckout.builder()\n            .withConfig(sdkConfig)\n            .withContext(this)\n            .withDebugMode(true)\n            .build()\n    }\n    \n    private fun setupNewCardComponent() {\n        val fields = NewCardComponentConfig.Fields().apply {\n            cardNumber = CardNumberComponentConfig(\n                onCardBrandDetected = { event ->\n                    updateDynamicCardImage(event.cardBrand)\n                },\n                onValidationPassed = { result ->\n                    enableNextField(\"expiry\")\n                },\n                onValidationFailed = { result ->\n                    showFieldError(\"card_number\", result.message)\n                }\n            )\n            \n            expiryDate = CardExpiryDateComponentConfig(\n                onValidationPassed = { result ->\n                    enableNextField(\"cvc\")\n                },\n                onValidationFailed = { result ->\n                    showFieldError(\"expiry\", result.message)\n                }\n            )\n            \n            cvc = CardCvcComponentConfig(\n                onValidationPassed = { result ->\n                    enableNextField(\"holder_name\")\n                },\n                onValidationFailed = { result ->\n                    showFieldError(\"cvc\", result.message)\n                }\n            )\n            \n            holderName = CardHolderNameComponentConfig(\n                onValidationPassed = { result ->\n                    enableSubmitButton()\n                },\n                onValidationFailed = { result ->\n                    showFieldError(\"holder_name\", result.message)\n                }\n            )\n        }\n        \n        val config = NewCardComponentConfig(\n            fields = fields,\n            onValidation = { validationResults ->\n                handleFormValidation(validationResults)\n            },\n            submit = CardSubmitComponentConfig(\n                onCollectStart = { \n                    showProgressIndicator(\"Collecting device information...\")\n                },\n                onCollectEnd = { \n                    hideProgressIndicator()\n                },\n                onPreTokenisation = {\n                    showProgressIndicator(\"Securing card information...\")\n                    true\n                },\n                onPostTokenisation = { tokenData ->\n                    hideProgressIndicator()\n                    Log.d(\"Payment\", \"Card tokenised successfully\")\n                },\n                onPreAuthorisation = { data ->\n                    showProgressIndicator(\"Processing payment...\")\n                    // Return transaction data with risk screening\n                    TransactionInitiationData(\n                        psd2Data = null, // Set to Psd2Data(scaExemption = ...) if needed\n                        riskScreeningData = RiskScreeningData(\n                            performRiskScreening = true,\n                            userIp = \"192.168.1.100\",\n                            account = RiskScreeningAccount(\n                                id = \"user_12345678\",\n                                creationDateTime = \"2024-01-15T10:30:00.000Z\"\n                            ),\n                            fulfillments = listOf(\n                                RiskScreeningFulfillment(\n                                    type = FulfillmentType.SHIPPED,\n                                    recipientPerson = RiskScreeningRecipientPerson(\n                                        phoneNumber = \"+1234567890\"\n                                    )\n                                )\n                            )\n                        )\n                    )\n                },\n                onPostAuthorisation = { result ->\n                    hideProgressIndicator()\n                    handlePaymentResult(result)\n                },\n                onSubmitError = { error ->\n                    hideProgressIndicator()\n                    handlePaymentError(error)\n                }\n            )\n        )\n        \n        newCardComponent = pxpCheckout.createComponent(\n            ComponentType.NEW_CARD,\n            config\n        )\n    }\n    \n    private fun handleFormValidation(validationResults: List<ValidationResult>) {\n        val allValid = validationResults.all { it.isValid }\n        updateSubmitButtonState(allValid)\n        \n        validationResults.forEach { result ->\n            if (!result.isValid) {\n                showFieldError(result.fieldName, result.message)\n            } else {\n                clearFieldError(result.fieldName)\n            }\n        }\n    }\n    \n    private fun handlePaymentResult(result: PaymentResult) {\n        when (result.status) {\n            PaymentStatus.AUTHORISED -> {\n                showSuccessDialog(\"Payment successful!\")\n                navigateToSuccessScreen()\n            }\n            PaymentStatus.DECLINED -> {\n                showErrorDialog(\"Payment was declined. Please try a different card.\")\n            }\n            PaymentStatus.ERROR -> {\n                showErrorDialog(\"Payment failed. Please try again.\")\n            }\n        }\n    }\n    \n    @Composable\n    private fun PaymentScreen() {\n        Column(\n            modifier = Modifier\n                .fillMaxSize()\n                .padding(16.dp)\n        ) {\n            Text(\n                text = \"Payment Information\",\n                style = MaterialTheme.typography.headlineMedium,\n                modifier = Modifier.padding(bottom = 24.dp)\n            )\n            \n            pxpCheckout.buildComponentView(\n                component = newCardComponent,\n                modifier = Modifier.fillMaxWidth()\n            )\n        }\n    }\n    \n    // Helper methods\n    private fun updateDynamicCardImage(cardBrand: CardBrand) {\n        // Update dynamic card image component\n    }\n    \n    private fun enableNextField(fieldName: String) {\n        // Focus next field in the form\n    }\n    \n    private fun showFieldError(fieldName: String, message: String) {\n        // Show error for specific field\n    }\n    \n    private fun clearFieldError(fieldName: String) {\n        // Clear error for specific field\n    }\n    \n    private fun enableSubmitButton() {\n        // Enable the submit button\n    }\n    \n    private fun updateSubmitButtonState(enabled: Boolean) {\n        // Update submit button state\n    }\n    \n    private fun showProgressIndicator(message: String) {\n        // Show loading indicator with message\n    }\n    \n    private fun hideProgressIndicator() {\n        // Hide loading indicator\n    }\n    \n    private fun showSuccessDialog(message: String) {\n        // Show success dialog\n    }\n    \n    private fun showErrorDialog(message: String) {\n        // Show error dialog\n    }\n    \n    private fun navigateToSuccessScreen() {\n        // Navigate to success screen\n    }\n    \n    private fun handlePaymentError(error: PaymentError) {\n        // Handle payment error\n    }\n}\n","lang":"kotlin"},"children":[]}]},"headings":[{"value":"Events","id":"events","depth":1},{"value":"Overview","id":"overview","depth":2},{"value":"Supported events","id":"supported-events","depth":2},{"value":"Callbacks","id":"callbacks","depth":2},{"value":"onAddressChanged","id":"onaddresschanged","depth":2},{"value":"Event data","id":"event-data","depth":4},{"value":"Example implementation","id":"example-implementation","depth":4},{"value":"onBlur","id":"onblur","depth":3},{"value":"Event data","id":"event-data-1","depth":4},{"value":"Example implementation","id":"example-implementation-1","depth":4},{"value":"onCardBrandCannotRecognised","id":"oncardbrandcannotrecognised","depth":3},{"value":"Event data","id":"event-data-2","depth":4},{"value":"onCardBrandDetected","id":"oncardbranddetected","depth":3},{"value":"Event data","id":"event-data-3","depth":4},{"value":"Example implementation","id":"example-implementation-2","depth":4},{"value":"onCardDetected","id":"oncarddetected","depth":3},{"value":"Event data","id":"event-data-4","depth":4},{"value":"Example implementation","id":"example-implementation-3","depth":4},{"value":"onCardFlipped","id":"oncardflipped","depth":3},{"value":"Event data","id":"event-data-5","depth":4},{"value":"Example implementation","id":"example-implementation-4","depth":4},{"value":"onCardInteraction","id":"oncardinteraction","depth":3},{"value":"Event data","id":"event-data-6","depth":4},{"value":"Example implementation","id":"example-implementation-5","depth":4},{"value":"onChange","id":"onchange","depth":3},{"value":"Event data","id":"event-data-7","depth":4},{"value":"Example implementation","id":"example-implementation-6","depth":4},{"value":"onSubmitStart","id":"onsubmitstart","depth":3},{"value":"Event data","id":"event-data-8","depth":4},{"value":"Example implementation","id":"example-implementation-7","depth":4},{"value":"onCollectStart","id":"oncollectstart","depth":3},{"value":"Event data","id":"event-data-9","depth":4},{"value":"Example implementation","id":"example-implementation-8","depth":4},{"value":"onCollectComplete","id":"oncollectcomplete","depth":3},{"value":"Event data","id":"event-data-10","depth":4},{"value":"Example implementation","id":"example-implementation-9","depth":4},{"value":"onCvcEntered","id":"oncvcentered","depth":3},{"value":"Event data","id":"event-data-11","depth":4},{"value":"Example implementation","id":"example-implementation-10","depth":4},{"value":"onCustomValidation","id":"oncustomvalidation","depth":3},{"value":"Event data","id":"event-data-12","depth":4},{"value":"Example implementation","id":"example-implementation-11","depth":4},{"value":"onDeleteTokenFailed","id":"ondeletetokenfailed","depth":3},{"value":"Event data","id":"event-data-13","depth":4},{"value":"Example implementation","id":"example-implementation-12","depth":4},{"value":"onDeleteTokenSuccess","id":"ondeletetokensuccess","depth":3},{"value":"Event data","id":"event-data-14","depth":4},{"value":"Example implementation","id":"example-implementation-13","depth":4},{"value":"onFocus","id":"onfocus","depth":3},{"value":"Event data","id":"event-data-15","depth":4},{"value":"Example implementation","id":"example-implementation-14","depth":4},{"value":"onGetFingerprintResult","id":"ongetfingerprintresult","depth":3},{"value":"Event data","id":"event-data-16","depth":4},{"value":"Example implementation","id":"example-implementation-15","depth":4},{"value":"onImageError","id":"onimageerror","depth":3},{"value":"Event data","id":"event-data-17","depth":4},{"value":"Example implementation","id":"example-implementation-16","depth":4},{"value":"onImageLoaded","id":"onimageloaded","depth":3},{"value":"Event data","id":"event-data-18","depth":4},{"value":"Example implementation","id":"example-implementation-17","depth":4},{"value":"onOnceCardClick","id":"ononcecardclick","depth":3},{"value":"Event data","id":"event-data-19","depth":4},{"value":"Example implementation","id":"example-implementation-18","depth":4},{"value":"onCountryDeselected","id":"oncountrydeselected","depth":3},{"value":"Event data","id":"event-data-20","depth":4},{"value":"Example implementation","id":"example-implementation-19","depth":4},{"value":"onCountrySelected","id":"oncountryselected","depth":3},{"value":"Event data","id":"event-data-21","depth":4},{"value":"Example implementation","id":"example-implementation-20","depth":4},{"value":"onPostAuthentication","id":"onpostauthentication","depth":3},{"value":"Event data","id":"event-data-22","depth":4},{"value":"Example implementation","id":"example-implementation-21","depth":4},{"value":"onPostAuthorisation","id":"onpostauthorisation","depth":3},{"value":"Event data","id":"event-data-23","depth":4},{"value":"Example implementation","id":"example-implementation-22","depth":4},{"value":"onPostInitiateAuthentication","id":"onpostinitiateauthentication","depth":3},{"value":"Event data","id":"event-data-24","depth":4},{"value":"Example implementation","id":"example-implementation-23","depth":4},{"value":"onPostTokenisation","id":"onposttokenisation","depth":3},{"value":"Event data","id":"event-data-25","depth":4},{"value":"Example implementation","id":"example-implementation-24","depth":4},{"value":"onPreAuthentication","id":"onpreauthentication","depth":3},{"value":"Event data","id":"event-data-26","depth":4},{"value":"Example implementation","id":"example-implementation-25","depth":4},{"value":"onPreAuthorisation","id":"onpreauthorisation","depth":3},{"value":"Event data","id":"event-data-27","depth":4},{"value":"Example implementation","id":"example-implementation-26","depth":4},{"value":"onPreDeleteToken","id":"onpredeletetoken","depth":3},{"value":"Event data","id":"event-data-28","depth":4},{"value":"Example implementation","id":"example-implementation-27","depth":4},{"value":"onPreInitiateAuthentication","id":"onpreinitiateauthentication","depth":3},{"value":"Event data","id":"event-data-29","depth":4},{"value":"Example implementation","id":"example-implementation-28","depth":4},{"value":"onPreTokenisation","id":"onpretokenisation","depth":3},{"value":"Event data","id":"event-data-30","depth":4},{"value":"Example implementation","id":"example-implementation-29","depth":4},{"value":"onPreRenderTokens","id":"onprerendertokens","depth":3},{"value":"Event data","id":"event-data-31","depth":4},{"value":"Example implementation","id":"example-implementation-30","depth":4},{"value":"onRetrieveTokensFailed","id":"onretrievetokensfailed","depth":3},{"value":"Event data","id":"event-data-32","depth":4},{"value":"Example implementation","id":"example-implementation-31","depth":4},{"value":"onStartSubmit","id":"onstartsubmit","depth":3},{"value":"Event data","id":"event-data-33","depth":4},{"value":"Example implementation","id":"example-implementation-32","depth":4},{"value":"onSubmitError","id":"onsubmiterror","depth":3},{"value":"Event data","id":"event-data-34","depth":4},{"value":"Example implementation","id":"example-implementation-33","depth":4},{"value":"onUpdateTokenFailed","id":"onupdatetokenfailed","depth":3},{"value":"Event data","id":"event-data-35","depth":4},{"value":"Example implementation","id":"example-implementation-34","depth":4},{"value":"onUpdateTokenSuccess","id":"onupdatetokensuccess","depth":3},{"value":"Event data","id":"event-data-36","depth":4},{"value":"Example implementation","id":"example-implementation-35","depth":4},{"value":"onValidation","id":"onvalidation","depth":3},{"value":"Event data","id":"event-data-37","depth":4},{"value":"Example implementation","id":"example-implementation-36","depth":4},{"value":"onValidationFailed","id":"onvalidationfailed","depth":3},{"value":"Event data","id":"event-data-38","depth":4},{"value":"Example implementation","id":"example-implementation-37","depth":4},{"value":"onValidationPassed","id":"onvalidationpassed","depth":3},{"value":"Event data","id":"event-data-39","depth":4},{"value":"Example implementation","id":"example-implementation-38","depth":4},{"value":"tokenItemBuilder","id":"tokenitembuilder","depth":3},{"value":"Event data","id":"event-data-40","depth":4},{"value":"Example implementation","id":"example-implementation-39","depth":4},{"value":"tokenLabelBuilder","id":"tokenlabelbuilder","depth":3},{"value":"Event data","id":"event-data-41","depth":4},{"value":"Example implementation","id":"example-implementation-40","depth":4},{"value":"onConsentChanged","id":"onconsentchanged","depth":3},{"value":"Event data","id":"event-data-42","depth":4},{"value":"Example implementation","id":"example-implementation-41","depth":4},{"value":"onTermsClicked","id":"ontermsclicked","depth":3},{"value":"Event data","id":"event-data-43","depth":4},{"value":"Example implementation","id":"example-implementation-42","depth":4},{"value":"onPrivacyClicked","id":"onprivacyclicked","depth":3},{"value":"Event data","id":"event-data-44","depth":4},{"value":"Example implementation","id":"example-implementation-43","depth":4},{"value":"onStateChanged","id":"onstatechanged","depth":3},{"value":"Event data","id":"event-data-45","depth":4},{"value":"Example implementation","id":"example-implementation-44","depth":4},{"value":"onAddressSync","id":"onaddresssync","depth":3},{"value":"Event data","id":"event-data-46","depth":4},{"value":"Example implementation","id":"example-implementation-45","depth":4},{"value":"onSyncComplete","id":"onsynccomplete","depth":3},{"value":"Event data","id":"event-data-47","depth":4},{"value":"Example implementation","id":"example-implementation-46","depth":4},{"value":"onTriggerFieldValidation","id":"ontriggerfieldvalidation","depth":3},{"value":"Event data","id":"event-data-48","depth":4},{"value":"Common scenarios","id":"common-scenarios","depth":2},{"value":"Handle a declined transaction","id":"handle-a-declined-transaction","depth":3},{"value":"Handle an authentication failure","id":"handle-an-authentication-failure","depth":3},{"value":"Complete payment flow example","id":"complete-payment-flow-example","depth":3}],"frontmatter":{"seo":{"title":"Events"}},"lastModified":"2026-06-12T11:56:36.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/guides/checkout/components/android/card/events","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}