Accepted providers

Meal voucher providers supported by VINR — identifiers, acceptance modes, and settlement details.

View as MarkdownInstall skills

VINR accepts four meal voucher providers. Each appears as a distinct method value in the VINR API and produces a separate settlement line in reconciliation.

Provider referenceAsk

ProviderAPI method valuePhysical cardApp / QROnline
Sodexomeal_voucher_sodexoYesNoYes
Up (Edenred)meal_voucher_upYesNoYes
Swilemeal_voucher_swileNoYes (QR + NFC)Yes
Ticket Restaurantmeal_voucher_ticket_restaurantYesNoYes

Identifying a meal voucher paymentAsk

After a meal voucher payment is completed, the payment.method field on the payment object contains the provider-specific value:

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

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

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

console.log(payment.method);
// → "meal_voucher_sodexo"

In payment_method_details, the meal_voucher object includes:

{
  "meal_voucher": {
    "provider": "sodexo",
    "last4": "4321"
  }
}

Settlement timelinesAsk

Meal voucher settlements follow provider-specific timelines, which differ from standard card settlement:

ProviderSettlement timeline
SodexoT+3 business days
Up (Edenred)T+3 business days
SwileT+2 business days
Ticket RestaurantT+3 business days

Meal voucher settlements appear as separate line items in your VINR reconciliation report, labelled by provider. See reconciliation for details on reading the report.

Null balance handlingAsk

When a customer's voucher balance is less than the payment amount, VINR returns an error code of voucher_balance_insufficient. You must implement split-tender handling to charge the remaining amount to a second payment method. See In-person & online integration for the split-tender flow.

See alsoAsk

Was this page helpful?
Edit on GitHub

Last updated on

On this page