# Check French meal vouchers balances

Learn how to check the available balance on a French meal voucher.

> #### Want to accept France titres-restaurant payments?
> 
> France titres-restaurant is in private preview. [Share your email address to request access.](https://docs.stripe.com/payments/meal-vouchers/fr-meal-vouchers/checking-a-card-balance.md#fr_meal_voucher_preview)

### Want to accept France titres-restaurant payments?

Enter your email to request access.

```bash
curl https://docs.stripe.com/preview/register \
  -X POST \
  -H "Content-Type: application/json" \
  -H "Referer: https://docs.stripe.com/payments/meal-vouchers/fr-meal-vouchers/checking-a-card-balance" \
  -d '{"email": "EMAIL", "preview": "fr_meal_voucher_preview"}'
```

> This guide is only for the following French meal vouchers issuers:
> 
> - Bimpli
- Pluxee
- Up Déjeuner

Meal vouchers in France typically have daily allowances that might not cover an entire purchase, and restrictions on eligible purchases. For example, customers can’t use a French meal voucher for non-food fees, such as service fees or delivery charges.

If you charge an amount that exceeds the available balance on the card, you’ll receive a card decline. To prevent this, perform balance checks for French meal vouchers payments. Balance checks don’t hold any amount on the French meal vouchers. Authorizations can still decline if the available amount is used by a concurrent purchase.

To check the available balance before payment, use the Payment Method Balance Check API. This allows you to:

- Display balance information to your customers during checkout
- Calculate how much to charge the French meal voucher versus a secondary payment method for [split tender](https://docs.stripe.com/payments/meal-vouchers/fr-meal-vouchers.md#split-tender)
- Verify that the French meal voucher has sufficient funds before creating a `PaymentIntent`

## Before you begin

[Provision your restaurant or store SIRET](https://docs.stripe.com/payments/meal-vouchers/fr-meal-vouchers/set-up-restaurant.md) for French meal vouchers acceptance with Stripe.

## Save a French meal voucher

To check the available balance on a French meal voucher, you must first [save it as a payment method](https://docs.stripe.com/payments/save-and-reuse.md). You can also check the balance of cards that you [saved during payment](https://docs.stripe.com/payments/save-during-payment.md).

## Check the balance

Use the [Check Balance API](https://docs.stripe.com/api/payment_methods/check_balance.md) to verify the available amount on a French meal voucher.

```curl
curl -X POST https://api.stripe.com/v1/payment_methods/{{PAYMENTMETHOD_ID}}/check_balance \
  -u "<<YOUR_SECRET_KEY>>:"
```

## Handle the response

The response contains the balance information, available by benefit type and as a list of available amounts by currency. You can use this information to display the balance to your customer and calculate the amount of any extra payments to charge another payment method. The `as_of` field indicates when the balance on the card was retrieved, but the balance can change at any point after this timestamp.

```json
{
  "object": "payment_method_balance",
  "as_of": 1750768577,
  "balance": {
    "fr_meal_voucher": {
      "available": [
        {
          "amount": 2500,
          "currency": "eur"
        }
      ]
    }
  },
  "livemode": true
}
```

## Test your integration 

To test your integration, you can use the payment method `pm_card_conecs_fr_frMealVoucher`. This card always returns a balance of 10.00 EUR in a sandbox.

```curl
curl -X POST https://api.stripe.com/v1/payment_methods/pm_card_conecs_fr_frMealVoucher/check_balance \
  -u "<<YOUR_SECRET_KEY>>:"
```

## Split tender considerations

You can use the following approach to split a payment between the French meal voucher and a secondary payment method:

1. Check the balance on the French meal voucher.
2. If the balance is insufficient, create two `PaymentIntent` objects: one for the French meal voucher and one for the secondary payment method.
3. Because you can’t refund French meal vouchers, always process the secondary payment method first. Alternatively, use manual capture for French meal vouchers after confirming the secondary payment succeeded.
4. If any of the payments fail, revert the other payment.

(See full diagram at https://docs.stripe.com/payments/meal-vouchers/fr-meal-vouchers/checking-a-card-balance)

```text
[Start the Checkout flow] --> [Retrieve the customer payment methods (French meal vouchers and secondary payment method)]
[Start the Checkout flow] --> [Calculate the subtotal and fees]
[Retrieve the customer payment methods (French meal vouchers and secondary payment method)] --> [Retrieve the French meal vouchers balance]
[Retrieve the French meal vouchers balance] --> [Calculate the amounts to charge the French meal voucher and the secondary payment method]
[Calculate the subtotal and fees] --> [Calculate the amounts to charge the French meal voucher and the secondary payment method]
[Calculate the amounts to charge the French meal voucher and the secondary payment method] --> [Display the Checkout page]
[Display the Checkout page] -- Change payment method --> [Start the Checkout flow]
[Create and confirm the Payment Intent for the secondary payment method] -- Payment succeeded --> [Display the Checkout success page]
[Display the Checkout page] -- User confirmation --> [Create and confirm the Payment Intent for the French meal voucher]
[Create and confirm the Payment Intent for the French meal voucher] -- Payment succeeded --> [Create and confirm the Payment Intent for the secondary payment method]
[Create and confirm the Payment Intent for the secondary payment method] -- Payment failed --> [Revert the French meal vouchers Payment Intent]
[Create and confirm the Payment Intent for the French meal voucher] -- Payment failed: restart flow handling error --> [Start the Checkout flow]
[Revert the French meal vouchers Payment Intent] -- Restart flow handling error --> [Start the Checkout flow]
```

## See also

- [Accept titres-restaurant payments](https://docs.stripe.com/payments/meal-vouchers/fr-meal-vouchers/accept-a-payment.md)
