{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-guides/sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":["sub-heading","admonition","br","details"]},"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 how to configure the click-once component."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"basic-usage","__idx":1},"children":["Basic usage"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"minimal-configuration","__idx":2},"children":["Minimal configuration"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The click-once component displays saved cards and allows customers to pay with a single tap. At minimum, you need to configure it with a card submit configuration:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"swift","header":{"controls":{"copy":{}}},"source":"import SwiftUI\nimport PXPCheckoutSDK\n\nvar config = ClickOnceComponentConfig()\n\nvar submitConfig = CardSubmitComponentConfig()\nsubmitConfig.onPreAuthorisation = { _ async in\n    TransactionInitiationData()\n}\nsubmitConfig.onPostAuthorisation = { _ in }\nconfig.cardSubmitComponentConfig = submitConfig\n\nlet clickOnce = try pxpCheckout.create(.clickOnce, componentConfig: config) as! ClickOnceComponent\n\nclickOnce.buildContent()\n","lang":"swift"},"children":[]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"info"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The click-once component requires ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ownerType"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ownerId"]},", and shopper information to retrieve saved tokens. Configure these in your ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CheckoutConfig"]},"."]}]},{"$$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: TransactionIntentData(card: .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":3,"id":"advanced-configuration","__idx":3},"children":["Advanced configuration"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["You can customise token filtering, sorting, CVC requirements, and button styling:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"swift","header":{"controls":{"copy":{}}},"source":"var config = ClickOnceComponentConfig()\n\nconfig.limitTokens = 5\nconfig.filterBy = FilterByConfig(\n    excludeExpiredTokens: true,\n    schemes: [.visa, .mastercard],\n    fundingSource: \"Credit\",\n    issuerCountryCode: \"USA\",\n    ownerType: \"Consumer\"\n)\nconfig.orderBy = OrderByConfig(\n    expiryDate: OrderByDirectionConfig(direction: \"asc\", priority: 1),\n    scheme: OrderByValueConfig(valuesOrder: [.visa, .mastercard, .americanExpress], priority: 2),\n    lastUsageDate: OrderByLastUsageDateConfig(\n        orderByField: \"lastSuccessfulPurchaseDate\",\n        direction: \"desc\",\n        priority: 3\n    )\n)\n\nconfig.isCvcRequired = true\nconfig.cvcComponentConfig = CardCvcComponentConfig(label: \"Security code\", isRequired: true)\n\nconfig.cardBrandImages = CardBrandImages(\n    visaSrc: Image(\"CustomVisa\"),\n    mastercardSrc: Image(\"CustomMC\")\n)\nconfig.useTransparentCardBrandImage = true\nconfig.hideCardBrandLogo = false\n\nconfig.submitText = \"Pay now\"\nconfig.label = \"Saved card\"\nconfig.transactionInitiatorType = .CIT\n\nconfig.onOnceCardClick = {\n    // Runs before payment submission\n}\n\nconfig.onPreRenderTokens = { response in\n    // Custom token filtering and ordering\n    response.gatewayTokens.map { CardTokenMapping(id: $0.gatewayTokenId, isCvcRequired: true) }\n}\n\nvar submitConfig = CardSubmitComponentConfig()\nsubmitConfig.onPreAuthorisation = { _ async in TransactionInitiationData() }\nsubmitConfig.onPostAuthorisation = { _ in }\nconfig.cardSubmitComponentConfig = submitConfig\n\nlet clickOnce = try pxpCheckout.create(.clickOnce, componentConfig: config) as! ClickOnceComponent\n","lang":"swift"},"children":[]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"align":"left","data-label":"Property"},"children":["Property"]},{"$$mdtype":"Tag","name":"th","attributes":{"align":"left","data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["cardSubmitComponentConfig"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["CardSubmitComponentConfig?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["The card submit configuration for payment processing. Required for handling the payment flow. See ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/guides/checkout/components/ios/card/card-submit"},"children":["Card submit"]},". Defaults to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["nil"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"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":{"align":"left"},"children":["The maximum number of tokens to display. Limits how many saved cards are available for selection. Defaults to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["nil"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["filterBy"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["FilterByConfig?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["The token filtering options. Allows you to narrow down which saved cards are displayed based on various criteria. Defaults to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["nil"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["filterBy.excludeExpiredTokens"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Bool?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Whether to exclude expired cards. When ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["true"]},", cards past their expiry date are hidden from the list. Defaults to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["true"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["filterBy.schemes"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["[TokenScheme]?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["The list of accepted card schemes. For example, ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["[.visa, .mastercard]"]}," shows only Visa and Mastercard tokens. Defaults to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["nil"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["filterBy.fundingSource"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["The funding source filter. For example ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["\"Credit\""]}," or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["\"Debit\""]}," filters to show only cards of that type. Defaults to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["nil"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["filterBy.issuerCountryCode"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["The issuer country code filter. Filters tokens by the country where the card was issued. Defaults to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["nil"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["filterBy.ownerType"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["The owner type filter. For example ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["\"Consumer\""]}," or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["\"Commercial\""]}," filters by card ownership type. Defaults to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["nil"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["orderBy"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["OrderByConfig?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["The token ordering configuration. Controls how tokens are sorted and displayed. Multiple ordering rules can be applied with priority values. Defaults to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["nil"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["orderBy.expiryDate"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["OrderByDirectionConfig?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["The configuration for sorting by expiry date with direction (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["\"asc\""]}," or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["\"desc\""]},") and priority. Defaults to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["nil"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["orderBy.scheme"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["OrderByValueConfig<TokenScheme>?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["The configuration for sorting by card scheme with custom order and priority. Defaults to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["nil"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["orderBy.fundingSource"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["OrderByValueConfig<String>?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["The configuration for sorting by funding source with custom order and priority. Defaults to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["nil"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["orderBy.ownerType"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["OrderByValueConfig<String>?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["The configuration for sorting by owner type with custom order and priority. Defaults to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["nil"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["orderBy.issuerCountryCode"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["OrderByDirectionConfig?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["The configuration for sorting by issuer country with direction and priority. Defaults to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["nil"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["orderBy.lastUsageDate"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["OrderByLastUsageDateConfig?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["The configuration for sorting by last usage date. Allows sorting by purchase or payout activity. Defaults to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["nil"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["isCvcRequired"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Bool?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Whether CVC is required for payment. When ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["true"]},", users must enter the security code before submitting. Defaults to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["nil"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"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":{"align":"left"},"children":["The CVC field configuration. Used when ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["isCvcRequired"]}," is ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["true"]},". See ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/guides/checkout/components/ios/card/card-cvc"},"children":["Card CVC"]},". Defaults to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["nil"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["hideCardBrandLogo"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Bool?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Whether to hide the brand logo. When ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["true"]},", the card brand image isn't displayed. Defaults to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["nil"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["useTransparentCardBrandImage"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Bool?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Whether to use transparent brand images. When ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["true"]},", card brand images render without background colours. Defaults to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["true"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"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":{"align":"left"},"children":["The custom card brand images. Properties: ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["visaSrc"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["mastercardSrc"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["amexSrc"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["cupSrc"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["dinersSrc"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["discoverSrc"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["jcbSrc"]},". Defaults to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["nil"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["disableCardSelection"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Bool?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Whether to disable changing the selected card. When ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["true"]},", users can't switch between saved cards. Defaults to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["nil"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["isRenderLastPurchaseCard"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Bool?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Whether to display the last purchase card. When ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["true"]},", the most recently used card for purchases is displayed. Defaults to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["nil"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["isRenderLastPayoutCard"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["Bool?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"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":[".payout"]}," intent) to show recipients their familiar payout cards. Defaults to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["nil"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transactionInitiatorType"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["TransactionInitiatorType?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["The transaction initiator type. Indicates whether the transaction is customer-initiated (CIT) or merchant-initiated (MIT). Defaults to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["nil"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["externalTokenId"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["The specific external token to display. When set, only this token is shown. Defaults to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["nil"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"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":{"align":"left"},"children":["The text displayed for expired cards. Overrides SDK default. Defaults to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["nil"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"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":{"align":"left"},"children":["The \"Valid thru\" label text. Overrides SDK default. Defaults to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["nil"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"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":{"align":"left"},"children":["The submit button text. Overrides SDK default. Defaults to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["nil"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["label"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["The section label text. Displayed above the component. Defaults to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["nil"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["labelAccessibilityLabel"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["The accessibility label for the section label. Defaults to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["nil"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["submitAccessibilityLabel"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["The accessibility label for the submit button. Defaults to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["nil"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["selectCardButtonAccessibilityLabel"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["The accessibility label for the card picker button. Defaults to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["nil"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["cardNumberAccessibilityLabel"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["The accessibility label for the card number display. Defaults to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["nil"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["cardExpiryDateAccessibilityLabel"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["String?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["The accessibility label for the expiry date display. Defaults to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["nil"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["styles"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["ClickOnceStandaloneStyles?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["The container, button, and component styling configuration. Controls the overall appearance of the click-once component. Defaults to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["nil"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["inputStyles"]},{"$$mdtype":"Tag","name":"Break","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Details","attributes":{},"children":["FieldInputStyle?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["The shared input styling for CVC field when required. Defaults to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["nil"]},"."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"event-handling","__idx":4},"children":["Event handling"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The click-once component provides event handlers for token management and payment:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"swift","header":{"controls":{"copy":{}}},"source":"config.onPreRenderTokens = { response in\n    // Custom token filtering and ordering\n    response.gatewayTokens\n        .filter { $0.issuerCountryCode == \"USA\" }\n        .map { CardTokenMapping(id: $0.gatewayTokenId, isCvcRequired: true) }\n}\n\nconfig.onRetrieveTokensSuccess = { success in\n    // Token retrieval succeeded\n}\n\nconfig.onRetrieveTokensFailed = { error in\n    // Handle retrieval error\n}\n\nconfig.onValidationError = { error in\n    // Handle validation error\n}\n\nconfig.onOnceCardClick = {\n    // Payment button tapped\n}\n\nconfig.buttonBuilder = { elements in\n    AnyView(\n        HStack {\n            elements.tokenImageView\n            elements.cardNumberView\n            elements.cvcComponentView\n            elements.payButtonView\n        }\n    )\n}\n\nconfig.selectTokenItemBuilder = { elements in\n    AnyView(\n        HStack {\n            elements.tokenImageView\n            elements.cardNumberView\n            elements.expiryDateView\n        }\n    )\n}\n","lang":"swift"},"children":[]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"align":"left","data-label":"Callback"},"children":["Callback"]},{"$$mdtype":"Tag","name":"th","attributes":{"align":"left","data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onPreRenderTokens: ((RetrieveCardTokensResponseSuccess) -> [CardTokenMapping])?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Called to pre-process tokens before rendering. Returns an array of ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CardTokenMapping"]}," where each can set ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["id"]}," and per-token ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["isCvcRequired"]},". Allows custom filtering and ordering logic."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onRetrieveTokensSuccess: ((ClickOnceRetrieveTokensSuccess) -> Void)?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Called after successful token retrieval. Receives the response with available tokens."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onRetrieveTokensFailed: ((ClickOnceRetrieveTokensError) -> Void)?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Called when token retrieval fails. Receives the error details."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onValidationError: ((BaseSdkException) -> Void)?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Called when validation errors occur. Receives the validation exception details."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onOnceCardClick: (() -> Void)?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Called when the payment button is tapped, before submission begins."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["buttonBuilder: ((ClickOnceButtonBuilderElements) -> AnyView)?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Custom SwiftUI builder for the payment button layout. Receives pre-built views and returns your custom layout."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["selectTokenItemBuilder: ((ClickOnceSelectTokenBuilderElements) -> AnyView)?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Custom SwiftUI builder for token picker rows. Receives pre-built views and returns your custom layout."]}]}]}]}]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"info"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For more information about event patterns and filtering options, see ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/guides/checkout/components/ios/card/events"},"children":["Events"]}," and ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/guides/checkout/components/ios/card/card-on-file"},"children":["Card-on-file"]},"."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"methods","__idx":5},"children":["Methods"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"buildcontent","__idx":6},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["buildContent()"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Returns SwiftUI content for the click-once component:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"swift","header":{"controls":{"copy":{}}},"source":"clickOnce.buildContent()\n","lang":"swift"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"examples","__idx":7},"children":["Examples"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"basic-click-once-payment","__idx":8},"children":["Basic click-once payment"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["A simple click-once payment form:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"swift","header":{"controls":{"copy":{}}},"source":"var config = ClickOnceComponentConfig()\nconfig.submitText = \"Pay now\"\nconfig.isCvcRequired = true\n\nvar submitConfig = CardSubmitComponentConfig()\nsubmitConfig.onPreAuthorisation = { _ async in TransactionInitiationData() }\nsubmitConfig.onPostAuthorisation = { result in\n    // Handle payment result\n}\nconfig.cardSubmitComponentConfig = submitConfig\n\nlet clickOnce = try pxpCheckout.create(.clickOnce, componentConfig: config) as! ClickOnceComponent\n","lang":"swift"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"filtered-and-sorted-tokens","__idx":9},"children":["Filtered and sorted tokens"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Display only specific card types in a custom order:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"swift","header":{"controls":{"copy":{}}},"source":"var config = ClickOnceComponentConfig()\nconfig.filterBy = FilterByConfig(\n    excludeExpiredTokens: true,\n    schemes: [.visa, .mastercard],\n    fundingSource: \"Credit\"\n)\nconfig.orderBy = OrderByConfig(\n    lastUsageDate: OrderByLastUsageDateConfig(\n        orderByField: \"lastSuccessfulPurchaseDate\",\n        direction: \"desc\",\n        priority: 1\n    )\n)\nconfig.limitTokens = 3\n\nvar submitConfig = CardSubmitComponentConfig()\nsubmitConfig.onPreAuthorisation = { _ async in TransactionInitiationData() }\nsubmitConfig.onPostAuthorisation = { _ in }\nconfig.cardSubmitComponentConfig = submitConfig\n\nlet clickOnce = try pxpCheckout.create(.clickOnce, componentConfig: config) as! ClickOnceComponent\n","lang":"swift"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"with-3ds-authentication","__idx":10},"children":["With 3DS authentication"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Enable 3DS authentication for click-once payments:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"swift","header":{"controls":{"copy":{}}},"source":"var config = ClickOnceComponentConfig()\nconfig.isCvcRequired = true\n\nvar submitConfig = CardSubmitComponentConfig()\nsubmitConfig.useUnityAuthenticationStrategy = true\nsubmitConfig.onPreInitiateAuthentication = {\n    PreInitiateIntegratedAuthenticationData(providerId: \"pxpfinancial\", timeout: 120)\n}\nsubmitConfig.onPreAuthentication = {\n    InitiateIntegratedAuthenticationData(\n        merchantCountryNumericCode: \"826\",\n        merchantLegalName: \"Example Ltd\",\n        challengeWindowSize: .size1,\n        requestorChallengeIndicator: .challengeRequestedMandate,\n        timeout: 180\n    )\n}\nsubmitConfig.onPreAuthorisation = { _ async in TransactionInitiationData() }\nsubmitConfig.onPostAuthorisation = { _ in }\nconfig.cardSubmitComponentConfig = submitConfig\n\nlet clickOnce = try pxpCheckout.create(.clickOnce, componentConfig: config) as! ClickOnceComponent\n","lang":"swift"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"payoutdisbursement-flow","__idx":11},"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":"swift","header":{"controls":{"copy":{}}},"source":"let transactionData = TransactionData(\n    amount: Decimal(string: \"150.00\")!,\n    currency: \"USD\",\n    entryType: .ecom,\n    intent: TransactionIntentData(card: .payout),  // Critical: Set to payout for disbursements\n    merchantTransactionId: \"payout-\\(UUID().uuidString)\",\n    merchantTransactionDate: { Date() }\n)\n\nlet checkoutConfig = CheckoutConfig(\n    environment: .test,\n    session: sessionData,\n    transactionData: transactionData,\n    merchantShopperId: \"recipient-shopper-id\",\n    ownerType: \"MerchantGroup\",\n    ownerId: \"your-owner-id\",\n    onGetShopper: { async in TransactionShopper(id: \"recipient-shopper-id\") }\n)\n\nlet pxpCheckout = try PxpCheckout.initialize(config: checkoutConfig)\n\nvar config = ClickOnceComponentConfig()\nconfig.submitText = \"Send funds\"\n\n// Enable payout-specific features\nconfig.isRenderLastPayoutCard = true  // Show cards used for previous payouts\nconfig.isRenderLastPurchaseCard = false  // Optionally hide purchase-only cards\n\n// Sort by most recent payout activity\nconfig.orderBy = OrderByConfig(\n    lastUsageDate: OrderByLastUsageDateConfig(\n        orderByField: \"lastSuccessfulPayoutDate\",\n        direction: \"desc\",\n        priority: 1\n    )\n)\n\nconfig.isCvcRequired = true\n\nvar submitConfig = CardSubmitComponentConfig()\nsubmitConfig.onPreAuthorisation = { _ async in\n    TransactionInitiationData(\n        riskScreeningData: RiskScreeningData(\n            performRiskScreening: true,\n            excludeDeviceData: false,\n            deviceSessionId: generateDeviceSessionId(),\n            userIp: \"192.168.1.100\",\n            account: RiskScreeningAccount(\n                id: \"recipient_12345\",\n                creationDateTime: \"2024-01-15T10:30:00.000Z\"\n            ),\n            fulfillments: [\n                RiskScreeningFulfillment(\n                    type: .shipped,\n                    recipientPerson: RiskScreeningRecipientPerson(\n                        phoneNumber: \"+1234567890\"\n                    )\n                )\n            ]\n        )\n    )\n}\nsubmitConfig.onPostAuthorisation = { result in\n    if result is MerchantSubmitResult {\n        print(\"Payout completed\")\n        // Navigate to payout confirmation screen\n    }\n}\nconfig.cardSubmitComponentConfig = submitConfig\n\nlet clickOnce = try pxpCheckout.create(.clickOnce, componentConfig: config) as! ClickOnceComponent\n\nprivate func generateDeviceSessionId() -> String {\n    return UUID().uuidString.replacingOccurrences(of: \"-\", with: \"\")\n}\n","lang":"swift"},"children":[]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"warning"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["When using ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":[".payout"]}," intent, funds move from your merchant account to the cardholder's card. Ensure you:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Have sufficient balance in your gateway account."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Use appropriate messaging (\"withdraw\", \"receive\", \"send to your card\")."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Verify recipient card eligibility for disbursements (not all cards support payouts)."]}]}]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"info"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For 3DS details, see ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/guides/checkout/components/ios/card/3ds"},"children":["3DS transactions"]},". For validation behaviour, see ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/guides/checkout/components/ios/card/data-validation"},"children":["Data validation"]},"."]}]}]},"headings":[{"value":"Click-once","id":"click-once","depth":1},{"value":"Basic usage","id":"basic-usage","depth":2},{"value":"Minimal configuration","id":"minimal-configuration","depth":3},{"value":"Advanced configuration","id":"advanced-configuration","depth":3},{"value":"Event handling","id":"event-handling","depth":2},{"value":"Methods","id":"methods","depth":2},{"value":"buildContent()","id":"buildcontent","depth":3},{"value":"Examples","id":"examples","depth":2},{"value":"Basic click-once payment","id":"basic-click-once-payment","depth":3},{"value":"Filtered and sorted tokens","id":"filtered-and-sorted-tokens","depth":3},{"value":"With 3DS authentication","id":"with-3ds-authentication","depth":3},{"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/ios/card/click-once","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}