# Tokens de marchand Apple Pay

Comment utiliser les tokens de marchand Apple&nbsp;Pay pour les paiements récurrents, les paiements différés et les paiements par rechargement automatique.

Le [token de marchand Apple Pay (MPAN)](https://developer.apple.com/apple-pay/merchant-tokens/) sert à relier une carte de paiement, une entreprise et un client, et permet au titulaire d’un portefeuille Apple&nbsp;Wallet de gérer l’accès à une carte qui y est enregistrée. Plutôt que de choisir des tokens d’appareils (DPAN), les dernières instructions d’Apple&nbsp;Pay recommandent de choisir des tokens de marchand, car&nbsp;:

- Ils assurent la continuité sur plusieurs appareils
- Ils permettent des paiements récurrents sans dépendre d’un appareil
- Ils permettent de conserver les informations de paiement sur un nouvel appareil même après qu’elles ont été supprimées d’un appareil perdu ou volé

## Types de tokens de marchand

Il existe trois&nbsp;manières d’utiliser Apple&nbsp;Pay pour demander un MPAN. Chaque type de requête présente différents paramètres qui affectent la manière dont Apple&nbsp;Wallet est présenté à l’utilisateur. Presque tous les types de requêtes permettent de fournir une `managementURL`, qui redirige les clients vers une page Web où ils peuvent gérer leurs moyens de paiement. Si vous demandez un MPAN et que l’émetteur prend en charge la génération de MPAN, vous recevez un MPAN. Dans le cas contraire, vous recevez un DPAN.

| Type de requête MPAN                                                                                                                          | Cas d’usage                                                                                                                                                                                                                                                                                                                              | Prise en charge                                                                                                              |
| --------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- |
| Paiements récurrents [PKRecurringPaymentRequest](https://developer.apple.com/documentation/passkit/pkrecurringpaymentrequest)                 | Émet un MPAN utilisable dans le cadre d’un paiement récurrent, comme un abonnement.                                                                                                                                                                                                                                                      | - [Apple&nbsp;Pay sur le Web](https://developer.apple.com/documentation/apple_pay_on_the_web)
  - iOS > v16.0                |
| Rechargement automatique [PKAutomaticReloadPaymentRequest](https://developer.apple.com/documentation/passkit/pkautomaticreloadpaymentrequest) | Émet un MPAN utilisable dans le cadre d’un rechargement de carte en magasin ou avec un compte prépayé. Paramètres pris en charge&nbsp;:
  - `automaticReloadBilling` affiche les informations de facturation lorsque vous présentez Apple&nbsp;Pay.                                                                                      | - [Apple&nbsp;Pay sur le Web](https://developer.apple.com/documentation/apple_pay_on_the_web)
  - iOS > v16.0                |
| Paiement différé [PKDeferredPaymentRequest](https://developer.apple.com/documentation/passkit/pkdeferredpaymentrequest)                       | Émet un MPAN utilisable dans le cadre de réservations, par exemple dans des hôtels. Paramètres pris en charge&nbsp;:
  - `freeCancellationDate` indique la date limite d’annulation lorsque vous présentez Apple&nbsp;Pay.
  - `billingAgreement` indique les conditions d’utilisation du service lorsque vous présentez Apple&nbsp;Pay. | - [Apple&nbsp;Pay sur le Web](https://developer.apple.com/documentation/apple_pay_on_the_web)
  - Xcode 14.3
  - iOS > v16.4 |

## Ajouter des tokens de marchand Apple Pay

Vous pouvez ajouter un [token de marchand](https://developer.apple.com/apple-pay/merchant-tokens/) lorsque vous présentez Apple&nbsp;Pay dans l’Express Checkout Element, dans le Payment Element sur le Web et dans le Payment Element sur mobile. Stripe gère automatiquement les demandes de tokens de marchand dans les intégrations Stripe Checkout.

#### Express Checkout Element

Si vous utilisez le [bouton de requête de paiement ](https://docs.stripe.com/stripe-js/elements/payment-request-button.md) pour des paiements récurrents, nous vous recommandons [de migrer vers l’Express Checkout Element](https://docs.stripe.com/elements/express-checkout-element/migration.md) pour de meilleures fonctionnalités et un meilleur service d’assistance des moyens de paiement.

1. Configurez l’[intégration Express Checkout Element](https://docs.stripe.com/elements/express-checkout-element/accept-a-payment.md).
1. Transmettez l’objet `applePay` qui correspond à votre cas d’usage MPAN (sélectionnez un des exemples de code de cas d’usage dans la liste déroulante).
1. Ajoutez les paramètres correspondants à votre cas d’usage.

#### Cas d'usage MPAN - Paiements récurrents

```javascript
elements.create('expressCheckout', {
  applePay: {recurringPaymentRequest: {
      paymentDescription: "Standard Subscription",
      regularBilling: {
        amount: 1000,
        label: "Standard Package",
        recurringPaymentStartDate: new Date("2023-03-31"),
        recurringPaymentEndDate: new Date("2024-03-31"),
        recurringPaymentIntervalUnit: "year",
        recurringPaymentIntervalCount: 1,
      },
      billingAgreement: "billing agreement",
      managementURL: "https://stripe.com",
    },
  },
});
```

#### Cas d'usage MPAN - Rechargement automatique

```javascript
elements.create('expressCheckout', {
  applePay: {automaticReloadPaymentRequest: {
      paymentDescription: 'My automatic reload payment',
      managementURL: 'https://example.com/billing',
      automaticReloadBilling: {
        amount: 2500,
        label: 'Automatic Reload',
        automaticReloadPaymentThresholdAmount: 500
      },
    }
  },
  // Other options
});
```

#### Cas d'usage MPAN - Paiement reporté

```javascript
const stripe = Stripe('pk_test_TYooMQauvdEDq54NiTphI7jx');
elements.create('expressCheckout', {
  applePay: {deferredPaymentRequest: {
      paymentDescription: 'My deferred payment',
      managementURL: 'https://example.com/billing',
      deferredBilling: {
        amount: 2500,
        label: 'Deferred Fee',
        deferredPaymentDate: new Date('2024-01-05')
      }
    }
  }
});
```

#### Payment Element sur le Web

1. Créez une instance du [Payment Element](https://docs.stripe.com/payments/payment-element.md).
1. Transmettez l’objet `applePay` qui correspond à votre cas d’usage MPAN (sélectionnez un des exemples de code de cas d’usage dans la liste déroulante).
1. Ajoutez les paramètres correspondants à votre cas d’usage.

#### Cas d'usage MPAN - Paiements récurrents

```javascript
const paymentElement = elements.create('payment', {
  applePay: {recurringPaymentRequest: {
      paymentDescription: 'My subscription',
      managementURL: 'https://example.com/billing',
      regularBilling: {
        amount: 2500,
        label: 'Monthly subscription fee',
        recurringPaymentIntervalUnit: 'month',
        recurringPaymentIntervalCount: 1,
      },
    },
  },
  // Other options
});
```

#### Cas d'usage MPAN - Rechargement automatique

```javascript
 const paymentElement = elements.create('payment', {
  applePay: {
    automaticReloadPaymentRequest: {
      paymentDescription: 'My subscription',
      managementURL: 'https://example.com/billing',
      regularBilling: {
        amount: 2500,
        label: 'Automatic Reload',
        automaticReloadPaymentThresholdAmount: 500
      },
    },
  },
  // Other options
});
```

#### Cas d'usage MPAN - Paiement reporté

```javascript
const paymentElement = elements.create('payment', {
  applePay: {
    deferredPaymentRequest: {
      paymentDescription: 'My deferred payment',
      managementURL: 'https://example.com/billing',
      deferredBilling: {
        amount: 2500,
        label: 'Deferred Fee',
        deferredPaymentDate: new Date('2024-01-05')
      },
    }
  },
  // Other options
});
```

## Surveillance du taux d’autorisation des tokens de marchand

Pour les utilisateurs de Sigma, la table `charges` contient un champ d’énumération `card_token_type` pour indiquer que le paiement utilise une carte `mpan` ou `dpan`. L’exemple de requête Sigma suivant calcule le taux d’autorisation MPAN :

```sql
-- deduplicated MPAN auth rate
select
  100.0 * count(
    case
      when charge_outcome in ('authorized', 'manual_review') then 1
    end
  ) / count(*) as deduplicated_auth_rate_pct,
  count(*) as n_attempts
from
  authentication_report_attempts a
  join charges c on c.id = a.charge_id
where
  c.created >= date('2021-01-01')
  and c.card_tokenization_method = 'apple_pay'
  -- The new field added to charges table.
  and c.card_token_type = 'mpan'
  -- deduplicate multiple manual retries to a single representative charge
  and is_final_attempt
```
