{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-guides/sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":["sub-heading","br","details","admonition"]},"type":"markdown"},"seo":{"title":"Click-once","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":"click-once","__idx":0},"children":["Click-once"]},{"$$mdtype":"Tag","name":"SubHeading","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Learn about customisation options for the click-once component."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"styling","__idx":1},"children":["Styling"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"kotlin","header":{"controls":{"copy":{}}},"source":"val clickOnceComponentConfig = ClickOnceComponentConfig(\n    headerTitle = String,\n    submitText = String?,\n    submitProcessingText = String?,\n    selectCardText = String,\n    expiredText = String?,\n    validThruText = String?,\n    hideCardBrandLogo = Boolean,\n    disableCardSelection = Boolean,\n    isRenderLastPurchaseCard = Boolean,\n    isRenderLastPayoutCard = Boolean,\n    isCvcRequired = Boolean,\n    useTransparentCardBrandImage = Boolean,\n    isProcessNextStepOnCardClick = Boolean,\n    cvcComponentConfig = CardCvcComponentConfig?,\n    cardSubmitComponentConfig = CardSubmitComponentConfig?,\n    notificationConfig = NotificationConfig,\n    cardBrandImages = CardBrandImages?,\n    filterBy = CardTokenFilter,\n    orderBy = CardTokenOrder,\n    limitTokens = Int?,\n    style = ClickOnceStyle\n)\n","lang":"kotlin"},"children":[]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Property"},"children":["Property"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["headerTitle"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Title text displayed at the top of the component. Defaults to default header title."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["submitText"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Text displayed on the submit button."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["submitProcessingText"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Text displayed during processing/loading state. Defaults to default processing text."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["selectCardText"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Text for card selection prompt. Defaults to \"Select Card\"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["expiredText"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Text displayed for expired cards."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["validThruText"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Text displayed before expiry date (e.g., \"Valid Thru\"). Defaults to \"Valid Thru\"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["hideCardBrandLogo"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Boolean"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Whether to hide the card brand logo/icon. Defaults to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["false"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["disableCardSelection"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Boolean"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Whether to disable card selection functionality. Defaults to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["false"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["isRenderLastPurchaseCard"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Boolean"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Whether to render cards used for last purchase. Defaults to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["true"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["isRenderLastPayoutCard"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Boolean"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Whether to display cards previously used for successful payouts. When ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["true"]},", cards with a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["lastSuccessfulPayoutDate"]}," will be shown even if they haven't been used for purchases. Recommended for payout flows (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["IntentType.Payout"]},") to show recipients their familiar payout cards. Defaults to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["true"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["isCvcRequired"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Boolean"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Whether CVC input is required for card selection. Defaults to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["true"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["useTransparentCardBrandImage"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Boolean"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Whether to use transparent background for card brand images. Defaults to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["true"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["isProcessNextStepOnCardClick"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Boolean"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Whether to automatically process next step when card is clicked. Defaults to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["true"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["cvcComponentConfig"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["CardCvcComponentConfig?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Configuration for the CVC input component."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["cardSubmitComponentConfig"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["CardSubmitComponentConfig?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Configuration for the card submit component."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["notificationConfig"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["NotificationConfig"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Configuration for notifications display. Defaults to default configuration."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["cardBrandImages"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["CardBrandImages?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Custom card brand images configuration."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["filterBy"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["CardTokenFilter"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Filter criteria for card tokens. Defaults to default filter."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["orderBy"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["CardTokenOrder"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Sorting/ordering criteria for card tokens. Defaults to default order."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["limitTokens"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Int?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Maximum number of tokens to display (null = no limit)."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["style"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["ClickOnceStyle"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Visual styling configuration for the component. Defaults to default style."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onOnceCardClick"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["(() -> Unit)?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Callback triggered when a card is clicked."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onPreRenderTokens"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["((List<CardToken>) -> List<CardTokenMapping>)?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Callback for custom token processing before rendering."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"callbacks","__idx":2},"children":["Callbacks"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"kotlin","header":{"controls":{"copy":{}}},"source":"data class ClickOnceComponentConfig(\n    val onValidationPassed: ((List<ValidationResult>) -> Unit)? = null,\n    val onValidationFailed: ((List<ValidationResult>) -> Unit)? = null,\n    val onTriggerFieldValidation: ((ValidationResult) -> Unit)? = null,\n    val onOnceCardClick: (() -> Unit)? = null,\n    val onPreRenderTokens: ((List<CardToken>) -> List<CardTokenMapping>)? = null\n)\n","lang":"kotlin"},"children":[]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Callback"},"children":["Callback"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onValidationPassed: ((List<ValidationResult>) -> Unit)?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Event handler for when validation passes. Inherited from ComponentConfigImpl."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onValidationFailed: ((List<ValidationResult>) -> Unit)?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Event handler for when validation fails. Inherited from ComponentConfigImpl."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onTriggerFieldValidation: ((ValidationResult) -> Unit)?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Event handler for when field validation is triggered individually. Inherited from ComponentConfigImpl."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onOnceCardClick: (() -> Unit)?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Event handler triggered when a card is clicked."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onPreRenderTokens: ((List<CardToken>) -> List<CardTokenMapping>)?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Event handler for custom token processing before rendering."]}]}]}]}]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"info"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For more information about callbacks, see ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/guides/checkout/components/android/card/events"},"children":["Events"]},"."]}]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"info"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["When using click-once with card submit, you can leverage the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onCustomValidation"]}," callback via ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["cardSubmitComponentConfig"]}," to implement custom business rule validation before payment submission. See ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/guides/checkout/components/android/card/card-submit"},"children":["Card submit"]}," for details."]}]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"info"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Payout support:"]}," The click-once component supports card payouts (also called disbursements or withdrawals) where funds are sent from your merchant account to a cardholder's card. This is commonly used for:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Marketplace seller payments"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Insurance claim settlements"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Refunds and reimbursements"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Competition prizes and rewards"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["When using ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["intent = IntentType.Payout"]},", configure ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["isRenderLastPayoutCard = true"]}," to display cards previously used for successful payouts, providing a familiar payout experience for returning recipients."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"example","__idx":3},"children":["Example"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"kotlin","header":{"controls":{"copy":{}}},"source":"import com.pxp.checkout.components.clickonce.ClickOnceComponent\nimport com.pxp.checkout.components.clickonce.ClickOnceComponentConfig\nimport com.pxp.checkout.components.cardcvc.CardCvcComponentConfig\nimport com.pxp.checkout.components.cardsubmit.CardSubmitComponentConfig\nimport com.pxp.checkout.models.CardTokenFilter\nimport com.pxp.checkout.models.CardTokenOrder\nimport com.pxp.checkout.styles.ClickOnceStyle\n\n// Optional: Create custom CVC configuration\nval cvcConfig = CardCvcComponentConfig(\n    label = \"CVC\",\n    placeholder = \"123\",\n    showMaskToggle = true\n)\n\n// Optional: Create custom submit configuration\nval submitConfig = CardSubmitComponentConfig(\n    buttonText = \"Pay Now\",\n    loadingText = \"Processing...\"\n)\n\n// Optional: Create custom filtering and ordering\nval tokenFilter = CardTokenFilter(\n    excludeExpired = true,\n    includeBrands = listOf(CardBrand.VISA, CardBrand.MASTERCARD)\n)\n\nval tokenOrder = CardTokenOrder(\n    sortByLastUsed = true,\n    sortByExpiryDate = false\n)\n\n// Optional: Create custom styling\nval customStyle = ClickOnceStyle(\n    colors = ClickOnceColors(\n        primaryColor = Color.Blue,\n        surfaceColor = Color.White,\n        onSurfaceColor = Color.Black\n    ),\n    textStyles = ClickOnceTextStyles(\n        cardNumberStyle = TextStyle(\n            fontSize = 16.sp,\n            fontWeight = FontWeight.SemiBold\n        )\n    )\n)\n\nval config = ClickOnceComponentConfig(\n    // Display text configuration\n    headerTitle = \"Select Payment Method\",\n    submitText = \"Pay Now\",\n    submitProcessingText = \"Processing Payment...\",\n    selectCardText = \"Choose your card\",\n    validThruText = \"Valid Thru\",\n    \n    // Behaviour configuration\n    hideCardBrandLogo = false,\n    disableCardSelection = false,\n    isRenderLastPurchaseCard = true,\n    isRenderLastPayoutCard = true,\n    isCvcRequired = true,\n    useTransparentCardBrandImage = true,\n    isProcessNextStepOnCardClick = true,\n    \n    // Component integrations\n    cvcComponentConfig = cvcConfig,\n    cardSubmitComponentConfig = submitConfig,\n    \n    // Data management\n    filterBy = tokenFilter,\n    orderBy = tokenOrder,\n    limitTokens = 5,\n    \n    // Styling\n    style = customStyle,\n    \n    // Event handlers\n    onOnceCardClick = {\n        println(\"Card clicked for quick payment\")\n    },\n    onPreRenderTokens = { tokens ->\n        // Custom processing of tokens before display\n        tokens.map { token ->\n            CardTokenMapping(\n                token = token,\n                displayLabel = \"•••• ${token.lastFourDigits}\"\n            )\n        }\n    }\n)\n\nval clickOnceComponent = checkout.createComponent<ClickOnceComponent, ClickOnceComponentConfig>(\n    type = ComponentType.CLICK_ONCE,\n    config = config\n)\n","lang":"kotlin"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"payoutdisbursement-flow","__idx":4},"children":["Payout/disbursement flow"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Use the click-once component to send funds to a cardholder's card (common for marketplace payouts, refunds, or prize disbursements):"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"kotlin","header":{"controls":{"copy":{}}},"source":"val transactionData = TransactionData(\n    amount = 150.00,\n    currency = \"USD\",\n    entryType = EntryType.Ecom,\n    intent = IntentType.Payout,  // Critical: Set to Payout for disbursements\n    merchantTransactionId = \"payout-${System.currentTimeMillis()}\",\n    merchantTransactionDate = Date()\n)\n\nval config = ClickOnceComponentConfig(\n    headerTitle = \"Select payout card\",\n    submitText = \"Send funds\",\n    submitProcessingText = \"Processing payout...\",\n    \n    // Enable payout-specific features\n    isRenderLastPayoutCard = true,  // Show cards used for previous payouts\n    isRenderLastPurchaseCard = false,  // Optionally hide purchase-only cards\n    \n    // Sort by most recent payout activity\n    orderBy = CardTokenOrder(\n        sortByField = LastUsageField.PAYOUT_DATE,\n        direction = SortDirection.DESC\n    ),\n    \n    isCvcRequired = true,\n    limitTokens = 5,\n    \n    cardSubmitComponentConfig = CardSubmitComponentConfig(\n        onPreAuthorisation = { data ->\n            // Add any payout-specific data\n            TransactionInitiationData(\n                riskScreeningData = RiskScreeningData(\n                    performRiskScreening = true,\n                    userIp = \"192.168.1.100\",\n                    account = RiskScreeningAccount(\n                        id = \"recipient_12345\",\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            Log.d(\"Payout\", \"Completed: ${result.merchantTransactionId}\")\n            navigateToPayoutConfirmation()\n        }\n    ),\n    \n    onOnceCardClick = {\n        Log.d(\"Payout\", \"Card selected for payout\")\n    }\n)\n\nval clickOnceComponent = checkout.createComponent<ClickOnceComponent, ClickOnceComponentConfig>(\n    type = ComponentType.CLICK_ONCE,\n    config = config\n)\n","lang":"kotlin"},"children":[]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"warning"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["When using ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["IntentType.Payout"]},", funds move from your merchant account to the cardholder's card. Ensure you have sufficient balance in your account and use appropriate messaging (\"withdraw\", \"receive\", \"send to your card\"). Note that not all cards support payouts."]}]}]},"headings":[{"value":"Click-once","id":"click-once","depth":1},{"value":"Styling","id":"styling","depth":2},{"value":"Callbacks","id":"callbacks","depth":2},{"value":"Example","id":"example","depth":2},{"value":"Payout/disbursement flow","id":"payoutdisbursement-flow","depth":3}],"frontmatter":{"seo":{"title":"Click-once"}},"lastModified":"2026-06-12T11:56:36.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/guides/checkout/components/android/card/click-once","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}