{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-guides/sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":["admonition"]},"type":"markdown"},"seo":{"title":"Inline Checkout Installments | xMoney Documentation","description":"Offer interest-free installment options in xMoney Embedded Checkout payment form and payment card widgets.","llmstxt":{"hide":false,"title":"xMoney Documentation","description":"Guides and API references for integrating xMoney card and crypto payments.","sections":[{"title":"Guides","description":"Integration guides for card payments, crypto, checkout, and dashboard.","includeFiles":["guides/**/*.md"]},{"title":"Card API","description":"REST API reference and concepts for xMoney card payments.","includeFiles":["api/**/*.md","api/**/*.yaml"]},{"title":"Crypto API","description":"REST API reference and concepts for xMoney crypto payments.","includeFiles":["crypto_api/**/*.md","crypto_api/**/*.yaml"]},{"title":"Card Issuing API","description":"Guides and API reference for xMoney whitelabel card issuing partners.","includeFiles":["card_issuing_api/**/*.md","card_issuing_api/**/*.yaml"]}]}},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"installments","__idx":0},"children":["Installments"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Embedded Checkout can show an installment picker when the shopper pays with a card that supports installments. The SDK loads available options from the card BIN, defaults to pay in full, and updates the pay button label when the shopper chooses a multi-month plan."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Installments are available only in ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["paymentForm()"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["paymentCard()"]},". They are not available for Apple Pay, Google Pay, or headless ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["savedCardPayment()"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"prerequisites","__idx":1},"children":["Prerequisites"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Installments appear only when all of the following are true:"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Installments are enabled for your site in the xMoney merchant configuration."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The order is a standard one-time payment (not card verification and not recurring)."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The shopper enters or selects a card whose BIN supports more than one installment."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["There is no merchant-side SDK flag to enable installments. When the site configuration allows them, the SDK shows the picker automatically for eligible cards."]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"info","name":"Contact support to enable installments"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["If installments do not appear for eligible cards, ask ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"mailto:support@xmoney.com"},"children":["support@xmoney.com"]}," to confirm that installments are enabled for your site."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"shopper-experience","__idx":2},"children":["Shopper experience"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["When an eligible card is present:"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The SDK checks the first six digits of the card number (new card) or the saved-card BIN."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["If the card supports installments, the form shows a ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Pay in installments"]}," section."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The shopper can choose ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Pay in full"]}," or a plan from ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["2"]}," through the maximum number of months returned for that BIN."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Each option shows the per-month amount for the current order total."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The built-in submit button updates to a multi-month label such as ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Pay 3 × 100.00 RON"]},"."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Pay in full remains the default. The shopper is never required to choose installments."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For returning customers, the installment picker can appear under the selected saved card. Choosing ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Use other card"]}," moves installments back to the new-card form when that card is eligible."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"supported-widgets","__idx":3},"children":["Supported widgets"]},{"$$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":"Widget"},"children":["Widget"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Installments"},"children":["Installments"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["XMoney.paymentForm()"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Yes"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["XMoney.paymentCard()"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Yes"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["XMoney.savedCardPayment()"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["No"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["XMoney.applePay()"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["No"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["XMoney.googlePay()"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["No"]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"sync-a-custom-pay-button","__idx":4},"children":["Sync a custom pay button"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["If you hide the built-in submit button and render your own CTA, use ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onPaymentChange"]}," to keep the button label and installment summary in sync."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"javascript","header":{"controls":{"copy":{}}},"source":"const paymentForm = await window.XMoney.paymentForm({\n  container: 'xmoney-payment-form',\n  publicKey,\n  orderPayload,\n  orderChecksum,\n  card: {\n    submitButton: {\n      visible: false,\n      type: 'pay', // or 'saveAndPay'\n    },\n  },\n  onPaymentChange({ installments, button }) {\n    document.getElementById('custom-pay-btn').textContent = button.label\n\n    const summary = document.getElementById('installment-summary')\n    summary.hidden = !installments.available || installments.count <= 1\n\n    if (installments.count > 1) {\n      summary.textContent = `${installments.count} × ${installments.formattedAmount}`\n    }\n  },\n  onPaymentComplete(transaction) {\n    handlePaymentResult(transaction)\n  },\n})\n","lang":"javascript"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"onpaymentchange-payload","__idx":5},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onPaymentChange"]}," payload"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"javascript","header":{"controls":{"copy":{}}},"source":"{\n  installments: {\n    available: true,          // picker is visible for the current card/BIN\n    count: 3,                 // selected months, or 1 for pay in full\n    amount: 100,              // per-installment amount (order total / count)\n    formattedAmount: '100.00 RON',\n  },\n  button: {\n    label: 'Pay 3 × 100.00 RON',\n  },\n}\n","lang":"javascript"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The callback fires when installment availability or selection changes, and again after ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["updateOrder()"]}," or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["updateLocale()"]}," when the display state changes."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"payment-request-behavior","__idx":6},"children":["Payment request behavior"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["When the shopper selects more than one installment, the SDK includes an ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["installments"]}," integer with the payment request. When the shopper pays in full, that field is omitted."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Your backend fulfillment should continue to rely on webhooks or trusted API status checks. Do not treat the client-side installment selection alone as proof of the charged plan."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"submit-button-labels","__idx":7},"children":["Submit button labels"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Built-in button types such as ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["pay"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["saveAndPay"]}," switch to installment variants when a multi-month plan is selected:"]},{"$$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":"Base type"},"children":["Base type"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Installment label"},"children":["Installment label"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["pay"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Pay {{count}} × {{amount}}"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["saveAndPay"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Save and pay {{count}} × {{amount}}"]}]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["{{amount}}"]}," is the per-installment amount, not the full order total."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"related-guides","__idx":8},"children":["Related guides"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/guides/checkout/inline-checkout/web-integration"},"children":["Website integration"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/guides/checkout/inline-checkout/custom-layouts"},"children":["Custom layouts"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/guides/checkout/inline-checkout/saved-cards"},"children":["Saved cards"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/guides/checkout/inline-checkout/3ds-results"},"children":["3DS and payment results"]}]}]}]},"headings":[{"value":"Installments","id":"installments","depth":1},{"value":"Prerequisites","id":"prerequisites","depth":2},{"value":"Shopper experience","id":"shopper-experience","depth":2},{"value":"Supported widgets","id":"supported-widgets","depth":2},{"value":"Sync a custom pay button","id":"sync-a-custom-pay-button","depth":2},{"value":"onPaymentChange payload","id":"onpaymentchange-payload","depth":3},{"value":"Payment request behavior","id":"payment-request-behavior","depth":2},{"value":"Submit button labels","id":"submit-button-labels","depth":2},{"value":"Related guides","id":"related-guides","depth":2}],"frontmatter":{"seo":{"title":"Inline Checkout Installments | xMoney Documentation","description":"Offer interest-free installment options in xMoney Embedded Checkout payment form and payment card widgets."}},"lastModified":"2026-10-10T08:11:15.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/guides/checkout/inline-checkout/installments","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}