# Paiements récurrents en Inde

Découvrez comment mettre à jour une intégration pour prendre en charge les mandats électroniques RBI pour les cartes bancaires et UPI.

> Bien que la réglementation parle de paiements «&nbsp;récurrents&nbsp;», les réseaux considèrent que *toute* transaction hors session, c’est-à-dire initiée par le commerçant, entre dans son champ d’application. C’est également notre position.

La banque centrale de l’Inde (Reserve Bank of India ou RBI) a émis une [directive](https://www.rbi.org.in/Scripts/NotificationUser.aspx?Id=11668) (modifiée ultérieurement en [décembre 2020](https://www.rbi.org.in/Scripts/NotificationUser.aspx?Id=12002) et en [mars 2021](https://www.rbi.org.in/Scripts/NotificationUser.aspx?Id=12051&Mode=0)) qui introduit des mesures de sécurité supplémentaires pour les paiements récurrents sur les cartes bancaires émises en Inde et sur d’autres moyens de paiement tels que [UPI](https://docs.stripe.com/payments/upi.md). Ces mesures incluent&nbsp;:

- Les prestataires de paiement doivent enregistrer les clients et créer un *mandat électronique* (An e-mandate is a form of authorization provided by cardholders to issuing banks that grants permission for recurring payments on their card. Any recurring payment arrangements (for example, monthly subscriptions to OTT services) need an associated e-mandate to be successful. The e-mandate needs to be registered and then validated through AFA, such as 3DS) via un processus unique, en utilisant une authentification par facteur supplémentaire (AFA) telle que *3D&nbsp;Secure (3DS)* (3D Secure (3DS) provides an additional layer of authentication for credit card transactions that protects businesses from liability for fraudulent card payments) pour les cartes bancaires ou le code PIN UPI pour UPI.
- Les clients doivent être alertés au moins 24&nbsp;heures avant que les paiements n’aient lieu et avoir la possibilité de refuser la transaction.
- Les transactions récurrentes de plus de 15&nbsp;000&nbsp;INR (ou équivalent dans une autre devise) nécessitent systématiquement l’authentification par facteur supplémentaire.

Si vous êtes un utilisateur Stripe établi en Inde ou un utilisateur Stripe international (hors Inde), votre entreprise est concernée si vous avez des clients qui utilisent des cartes bancaires indiennes ou UPI pour&nbsp;:

- Paiements *hors session* (A payment is described as off-session if it occurs without the direct involvement of the customer, using previously-collected payment information)
- Objets Subscription ou Invoice dont le paramètre `collection_method` est défini sur `charge_automatically`

> Pour les détails des paiements récurrents spécifiques à UPI, notamment les options de personnalisation des mandats, consultez la page [Paiements récurrents (UPI AutoPay)](https://docs.stripe.com/payments/upi/upi-autopay.md).

## Fonctionnement des paiements avec un mandat électronique

Stripe a collaboré avec une plateforme partenaire pour prendre en charge l’enregistrement des mandats électroniques et l’envoi de notifications préalables de prélèvement aux clients. Cela s’applique à la fois aux paiements par carte bancaire et aux paiements UPI.

> Nous ne proposons pas actuellement l’utilisation de mandats électroniques aux utilisateurs de Stripe au Mexique.

Selon la façon dont vous avez effectué votre intégration avec Stripe, vous devrez peut-être faire parvenir à Stripe des informations supplémentaires pour configurer un mandat. Le client doit passer par l’AFA (3DS pour les cartes bancaires, ou code PIN UPI pour UPI) pour enregistrer le mandat.

Les paiements hors session ou les prélèvements automatiques ultérieurs dans le cas d’un abonnement subissent un changement important. Les clients doivent recevoir une notification préalable de prélèvement au moins 24&nbsp;heures avant le paiement effectif et sur laquelle le montant exact du prélèvement est indiqué. La notification préalable de prélèvement contient des informations sur le paiement et une option pour annuler le mandat. Pour les paiements par carte bancaire, si le montant du paiement est supérieur à 15&nbsp;000&nbsp;INR ou au montant maximum du mandat, la notification de préalable de prélèvement contient un lien pour effectuer l’AFA (3DS) dans le but d’autoriser le paiement. UPI ne prend actuellement pas en charge les transactions récurrentes d’une valeur supérieure à 15&nbsp;000&nbsp;INR.

Pour les paiements par carte bancaire, étant donné que Stripe s’intègre avec une plateforme partenaire, Stripe attend 26&nbsp;heures avant de débiter le client après réception d’une demande de paiement (Stripe ajoute une marge de sécurité pour gérer d’éventuels problèmes en aval, ce qui nécessite une notification préalable de 26&nbsp;heures). Cela signifie que Stripe reporte de 26&nbsp;heures la collecte des paiements par carte bancaire. Pour les paiements UPI, Stripe envoie la notification préalable de prélèvement et débite le client 1&nbsp;jour plus tard.

Si vous n’avez pas de mandat dans le cadre d’un paiement hors session, le paiement sera refusé.

## Intégration

### Notification préalable de prélèvement

Lorsque le PaymentIntent hors session est [confirmed](https://docs.stripe.com/api/payment_intents/confirm.md), la banque envoie au client la notification préalable de prélèvement. Le PaymentIntent passe à l’état `processing` pendant toute la durée de la période de notification préalable de prélèvement (26&nbsp;heures) et ne peut pas être annulé.

```json
{
  "object": "payment_intent",
  ...
  "processing": {
    "card": {
      "customer_notification": {
        "approval_requested": true,
        "completes_at": 1677307005
      }
    },
    "type": "card"
  },
  ...
  "status": "processing",
  ...
}
```

Si [processing.card.customer_notification.approval_requested](https://docs.stripe.com/api/payment_intents/object.md#payment_intent_object-processing-card-customer_notification-approval_requested) est `true`, le client doit authentifier le paiement à l’aide de la notification préalable de prélèvement qui lui a été envoyée par la banque.

L’attribut [processing.card.customer_notification.completes_at](https://docs.stripe.com/api/payment_intents/object.md#payment_intent_object-processing-card-customer_notification-completes_at) indique le moment auquel Stripe tente de débiter le moyen de paiement. Si le traitement du paiement nécessite l’approbation du client, celui-ci doit authentifier le paiement avant l’heure indiquée.

### Codes d’erreur et de refus

Nous renvoyons des [codes](https://docs.stripe.com/api/payment_intents/object.md#payment_intent_object-last_payment_error-decline_code) d’erreur dans les situations suivantes&nbsp;:

| Code d’erreur | Description |
| --- | --- |
| `payment_intent_mandate_invalid` | Toute tentative de paiement récurrent à l’aide d’un mandat inactif renvoie ce code. Pour éviter cela, vous pouvez vérifier l’état du mandat avant d’effectuer une tentative de prélèvement. |
| `india_recurring_payment_mandate_canceled` | Toute tentative de paiement récurrent à l’aide d’un mandat annulé renvoie ce code. Cela peut se produire lorsque nous ignorions qu’un mandat avait été annulé. |
| `processing_error` | La détection d’une erreur de traitement (généralement temporaire) renvoie ce code. |

En ce qui concerne les mandats électroniques, certains [codes de refus](https://docs.stripe.com/api/payment_intents/object.md#payment_intent_object-last_payment_error-decline_code) peuvent avoir une signification plus précise que dans les [cas d’usage courants](https://docs.stripe.com/declines/codes.md)&nbsp;:

| Code de refus de paiement | Description |
| --- | --- |
| `transaction_not_approved` | Toute tentative de paiement ultérieure, alors que le client a suspendu les autorisations de prélèvement automatique ou qu’il n’authentifie pas le paiement lorsqu’il y est invité, renvoie ce code. |

## Tests

Vous pouvez utiliser ces [numéros de carte bancaire de test](https://docs.stripe.com/testing.md#testing-interactively) pour simuler différents scénarios de mandat de carte bancaire.

Dans un *environnement de test* (A sandbox is an isolated test environment that allows you to test Stripe functionality in your account without affecting your live integration. Use sandboxes to safely experiment with new features and changes), un PaymentIntent hors session met environ 15&nbsp;minutes à quitter l’état `processing`. Pendant une session, le PaymentIntent d’un paiement initial n’est jamais à l’état `processing`.

#### Numéros de carte

| Numéro | Scénario |
| --- | --- |
| 4000003560000123 | Simule la configuration et le renouvellement d’un mandat. |
| 4000003560000297 | Simule la réception par un client d’une notification préalable de prélèvement pour l’annulation ou la suspension d’un paiement hors session concernant un mandat de n’importe quel montant. |
| 4000003560000248 | Simule l’échec de la banque émettrice à envoyer une notification préalable de prélèvement au client lors d’un paiement hors session concernant un mandat de n’importe quel montant. |
| 4000003560000263 | Simule l’annulation d’un mandat de n’importe quel montant par un client. |

#### PaymentMethods

| PaymentMethod | Scénario |
| --- | --- |
| `pm_card_indiaRecurringMandateSetupAndRenewalsSuccess` | Simule la configuration et le renouvellement d’un mandat. |
| `pm_card_indiaRecurringPaymentFailureAfterPreDebitNotification` | Simule la réception par un client d’une notification préalable de prélèvement pour l’annulation ou la suspension d’un paiement hors session concernant un mandat de n’importe quel montant. |
| `pm_card_indiaRecurringPaymentFailureUndeliveredDebitNotification` | Simule l’échec de la banque émettrice à envoyer une notification préalable de prélèvement au client lors d’un paiement hors session concernant un mandat de n’importe quel montant. |
| `pm_card_indiaRecurringPaymentFailureCanceledMandate` | Simule l’annulation d’un mandat de n’importe quel montant par un client. |

### Simulez les échecs de configuration de mandat

> #### Exigence de version d’API
> 
> This simulation is available for API versions `2026-09-30.endive` and later.

Pour tester la façon dont votre intégration gère l’échec de la configuration d’un mandat récurrent en Inde, utilisez le numéro de carte bancaire suivant en mode test et indiquez un e-mail de facturation dont la partie locale correspond à l’un des modèles ci-dessous. Le modèle peut avoir n’importe quel préfixe et domaine.
4000003560000032
| Modèle d’e-mail de facturation | Motif d’inactivité |
| --- | --- |
| `{prefix}issuer_not_supported@{domain}` | `issuer_not_supported` |
| `{prefix}currency_not_supported@{domain}` | `currency_not_supported` |
| `{prefix}card_not_supported@{domain}` | `card_not_supported` |
| `{prefix}processing_error@{domain}` | `processing_error` |
| `{prefix}undetermined@{domain}` | `undetermined` |
| `{prefix}canceled@{domain}` | `canceled` |
| `{prefix}expired@{domain}` | `expired` |

Par exemple, utilisez `customer_issuer_not_supported@example.com` comme e-mail de facturation pour simuler un motif `issuer_not_supported`. Le mandat qui en résulte a l’état `inactive` et le [`inactive_reason`](https://docs.stripe.com/api/mandates/object.md#mandate_object-payment_method_details-card-india-inactive_reason) sélectionné. Si l’e-mail de facturation ne correspond à aucun de ces modèles, la carte bancaire suit le flux normal du mode test.

## Limitations

Notez les restrictions suivantes&nbsp;:

- Stripe tente de créer automatiquement des mandats pour les abonnements créés après le 1er&nbsp;octobre&nbsp;2021 uniquement. Pour les abonnements dont la création est antérieure à cette date, annulez et créez un nouvel abonnement pour vous assurer qu’un mandat est créé.
- Vous ne pouvez pas créer de mandat en utilisant les API [Charges](https://docs.stripe.com/api/charges.md) et [Sources](https://docs.stripe.com/api/sources.md).
- Pour les abonnements avec une devise autre que l’INR, les mandats ne sont enregistrés que si un moyen de paiement indien est associé au client au moment de la création de l’abonnement. Si vous créez un abonnement qui n’est pas libellé en INR sans moyen de paiement et ajoutez ultérieurement une carte bancaire indienne, aucun mandat n’est créé. Pour garantir la bonne création du mandat, associez un moyen de paiement indien avant de créer l’abonnement.
- Il n’est pas possible de transmettre un mandat existant à un abonnement.
- Vous ne pouvez pas annuler ou mettre à jour un mandat.
- UPI ne prend actuellement pas en charge les transactions récurrentes d’une valeur supérieure à 15&nbsp;000&nbsp;INR.
