PaymentsInstallments

Installments

Split a purchase into equal monthly payments while receiving the full amount upfront.

View as MarkdownInstall skills

Installments let customers split a single purchase into equal monthly payments while VINR advances the full purchase amount to you immediately after the transaction settles. Credit risk on the repayment schedule stays with the card issuer or BNPL provider — not with your business. From your perspective an installment payment settles like any other card charge.

EligibilityAsk

Installment programs are offered by participating card issuers and BNPL networks. Availability varies by market and currency.

MarketSupported currenciesParticipating brands
European UnionEURVisa, Mastercard (select issuers)
United KingdomGBPVisa, Mastercard (select issuers)
United StatesUSDVisa, Mastercard, American Express
BrazilBRLVisa, Mastercard, Elo
MexicoMXNVisa, Mastercard

Whether installment options appear at checkout depends on both the issuer's participation in the program and the individual cardholder's account terms. A card brand appearing in the table above does not guarantee every cardholder on that brand will see installment offers.

Offer installments at checkoutAsk

Pass installments: { enabled: true } when creating a payment. The VINR hosted checkout automatically presents available installment plans when the customer's card supports them. If the card does not qualify, checkout proceeds as a standard one-shot payment.

import { Vinr } from '@vinr/sdk';

const vinr = new Vinr({ secretKey: process.env.VINR_SECRET_KEY });

const payment = await vinr.payments.create({
  amount: 60000,                  // €600.00
  currency: 'EUR',
  description: 'VINR Pro annual kit',
  returnUrl: 'https://yoursite.com/orders/complete',
  installments: {
    enabled: true,
  },
});

// Redirect the customer to payment.checkoutUrl.
// The hosted checkout surfaces installment plans if the card is eligible.

After the customer selects a plan and authenticates, the payment moves to completed and payment.completed fires. The installments object on the completed payment reflects the plan the customer chose.

Specify a planAsk

To pre-select the number of installments instead of letting the customer choose, pass count alongside enabled: true. If the issuer supports the requested count it is applied automatically; otherwise VINR falls back to the closest available option and records the resolved plan on the payment object.

const payment = await vinr.payments.create({
  amount: 60000,
  currency: 'EUR',
  description: 'VINR Pro annual kit',
  returnUrl: 'https://yoursite.com/orders/complete',
  installments: {
    enabled: true,
    count: 3,
    interval: 'month',
    firstPaymentDate: '2026-06-01',
  },
});

Prop

Type

Merchant settlementAsk

When a customer completes an installment payment, VINR settles the full purchase amount to your account in the next regular settlement cycle — not spread across the installment schedule. The only difference from a standard card payment is the processing fee structure: an installment fee applies in addition to the base interchange, and both are shown as separate line items on your statement.

The settlement record for an installment payment includes the resolved plan details:

const payment = await vinr.payments.retrieve('pay_3Nf8x2a');

console.log(payment.installments);
// {
//   enabled: true,
//   count: 3,
//   interval: 'month',
//   firstPaymentDate: '2026-06-01',
//   resolvedCount: 3,         // plan confirmed by the issuer
//   issuerProgram: 'mastercard_installments'
// }
const payment = await vinr.payments.retrieve('pay_3Nf8x2a');

console.log(payment.feeBreakdown);
// {
//   processingFee: 174,         // base interchange, minor units
//   installmentFee: 90,         // installment program surcharge
//   totalFee: 264
// }

Installment transactions appear in reconciliation with a payment_method_type of card_installment. Use this field to filter or aggregate installment volume in your reporting.

Refunds on installment paymentsAsk

Refunds interact with installment plans at the issuer level. VINR processes the refund on your side identically to any card refund — the adjustment to the cardholder's repayment schedule is handled by the issuer.

Full refund — Refunding the complete purchase amount cancels the outstanding installment plan with the issuer. The cardholder is no longer billed for future installments.

const refund = await vinr.refunds.create({
  payment: 'pay_3Nf8x2a',
  reason: 'requested_by_customer',
});

// refund.status → "pending"
// The issuer cancels the remaining installment schedule on confirmation.

Partial refund — A partial refund reduces the outstanding balance on the installment plan. The issuer recalculates the remaining installment amounts and notifies the cardholder. You cannot partially refund below the amount already collected in prior installments.

const partial = await vinr.refunds.create({
  payment: 'pay_3Nf8x2a',
  amount: 20000,              // €200.00 of a €600.00 installment payment
  reason: 'product_not_received',
});

Refund timing on installment payments can be longer than on standard card charges. The issuer must update the repayment schedule before the cardholder sees the adjustment. Budget 5–15 business days for the change to be visible to the customer.

For full refund mechanics, status states, and failure handling see Refunds.

Next stepsAsk

Was this page helpful?
Edit on GitHub

Last updated on

On this page