Skip to main content
On this page

MSI lets a customer divide a purchase into eligible installments without campaign interest increasing the purchase total. The merchant's commercial agreement and configured campaign determine which terms and card brands are available and what cost the merchant absorbs.

MSI campaign model#

Configure an MSI campaign under Admin → Installments configuration.

ConfigurationPurpose
Campaign typeSelect MSI.
Currency and validityLimit the campaign to its currency and optional active dates.
Payment providersChoose the compatible processor connections that can process the terms.
Installment termsAdd the numbers of installments customers can select, such as 3, 6, or 12.
Card brandsEnable each supported brand independently for a term.
Minimum and maximum amountDefine the eligible per-installment amount range for the brand and term.
Commission or costRecord the configured merchant-side cost for the MSI term. It does not become customer interest.

The campaign becomes an option only after DEUNA also confirms the order's store, amount, currency, card brand, eligible processors, and routing constraints.

Customer amount#

For MSI, the campaign keeps the customer total equal to the base purchase amount. DEUNA divides that total across the selected term and returns the authoritative display values. Rounding can affect an individual installment, so render the response instead of calculating customer copy independently.

Flow diagram
1Base order total2Eligible MSIcampaign3Returned interestrate 04Customer selects aterm5Purchase sends term+ option ID
Merchant or customer

Retrieve and present MSI options#

Call List installment options with the order token and the new card's BIN, or the supported stored-card identifier.

JSON
{
  "installments": [
    {
      "installments": 3,
      "installments_amount": 33333,
      "display_installments_amount": "MXN 333.33",
      "installment_rate": 0,
      "display_installment_label": "3 payments of MXN 333.33 without interest",
      "plan_option_id": "f003d3d4-faa7-4336-bd4d-8fafd40a7f87",
      "installment_total_amount": 100000,
      "display_installment_total_amount": "MXN 1,000.00"
    }
  ]
}

Use the returned label and amounts in checkout. Do not advertise a term only because the campaign contains it; the live response is the applicable set for this payment.

Send the customer's selection#

Copy the installment count and option ID from the same item into the card information:

JSON
{
  "payment_source": {
    "method_type": "credit_card",
    "card_info": {
      "card_id": "CARD_ID",
      "installments": 3,
      "installment": {
        "plan_option_id": "f003d3d4-faa7-4336-bd4d-8fafd40a7f87"
      }
    }
  }
}

installments is the customer's selected term. plan_option_id is the exact DEUNA option that backs it. Sending only one of these values loses part of the selection contract.

Test MSI#

  1. Use an active MSI campaign with the sandbox processor selected.
  2. Use a card whose detected brand is enabled for the term.
  3. Use an order amount whose calculated per-installment amount is inside the configured range, and use the campaign currency.
  4. Confirm that the response rate is 0 and the financed total matches the base order total.
  5. Purchase with the returned count and option ID, then verify the payment response and provider result.

If no option is returned, check campaign status and dates, store context, currency, card brand, per-installment amount range, provider eligibility, and routing rules before changing the integration.

See Installments for the complete campaign lifecycle and MCI for customer-financed terms.