Données de paiement sauvegardées
Aperçu
Les données de paiement sauvegardées sont utilisées lorsqu'un client autorise un marchand à stocker les informations de paiement pour des paiements ultérieurs. Par exemple, un payeur peut choisir de sauvegarder sa carte lors du paiement. Dans ce cas, un jeton unique est généré par la passerelle de paiement qui lie le numéro de carte du payeur (PAN) à son ID dans le système du magasin (par exemple, au login du payeur).
Stockage d'une méthode de paiement
Vous pouvez stocker une méthode de paiement pendant le paiement. À cette fin, vous devez créer une Session (si l'intégration par redirection est utilisée) en utilisant la méthode /sessions ou créer un paiement (si l'intégration directe est utilisée) en utilisant la méthode /payments (voir la Référence API pour plus de détails). Dans chacune de ces méthodes, vous devez spécifier les paramètres suivants :
-
merchantCustomerId- un identifiant de votre client, toutes les cartes du client seront attachées à ce numéro. À des fins de test, vous pouvez utiliser n'importe quelle combinaison de symboles (de 8 à 50) commemerchantCustomerId. Les symboles autorisés sont les chiffres, les caractères latins,_, et-. -
setupFutureUsage- le bloc avec les informations sur la catégorie de méthode de paiement et l'utilisation future. Ce bloc contient les paramètres suivants :
| Obligatoire | Nom | Type | Description |
|---|---|---|---|
| Obligatoire | storePaymentMethodMode |
String | Contrôle la façon dont la méthode de paiement est stockée dans le système de passerelle. Valeurs possibles : enabled, disabled, forced. |
| Obligatoire | category |
String | Catégorie de la méthode de paiement qui sera stockée pour utilisation future. Valeurs autorisées :
|
| Conditionnel | recurringModel |
Object | Paramètres de configuration supplémentaires pour les catégories de méthodes de paiement récurrentes et par versements. Est obligatoire lorsque la catégorie recurrent ou incremental est utilisée. |
| Conditionnel | recurringModel.recurrent |
Object | Attributs de paiement récurrent. Est obligatoire lorsque la catégorie recurrent est utilisée. |
| Obligatoire | recurringModel.recurrent.expiry |
String | La date après laquelle les paiements ne sont pas autorisés. Le format est "YYYY-MM-dd". |
| Obligatoire | recurringModel.recurrent.frequency |
Number | Nombre minimum de jours entre les paiements (<=4000). |
| Conditional | recurringModel.installment |
Object | Recurrent payment attributes. Is mandatory when incremental category is used. |
| Mandatory | recurringModel.installment.expiry |
String | The date after which payments are not allowed. |
| Mandatory | recurringModel.installment.frequency |
Number | Minimum number of days between payments (<=4000). |
| Mandatory | recurringModel.installment.phase |
Number | Maximum number of allowed authorizations for installment payments. (<=1000). |
| Mandatory | recurringModel.installment.totalAmount |
Number | Total amount of all installment payments. |
Example of setupFutureUsage section:
"setupFutureUsage": {
"category": "recurrent",
"recurringModel": {
"recurrent": {
"expiry": "2025-08-24",
"frequency": 2
}
}
}After successfull payment, the Payment Method will be stored. The identifier of the created Stored Payment Method will be returned in the following webhooks:
-
paymentMethod.created- inidparameter -
payment.succeeded- instoredPaymentMethod.idparameter
For details, refer to Webhooks.
You can also retrieve the identifier of the created Stored Payment Method by sending the /payments/{id} request where id is the identifier of the Payment. The identifier of the Store Payment Method will be returned in the storedPaymentMethod.id parameter of the response. For details, refer to API Reference.
Retrieving Stored Payment Methods
Pour récupérer une méthode de paiement particulière, utilisez la requête GET paymentMethods/{id}, où id est l'identifiant de la méthode de paiement. La passerelle de paiement retournera l'objet PaymentMethod avec l'identifiant spécifié. Pour plus de détails, référez-vous à la Référence API.
Exemple de requête :
curl -X GET "https://dev.bpcbt.com/api2/paymentMethods/pm_RqN18WngsfAohSze48DUcjQSYceYqW7iJSm25RHJwSkRduEkq"\
-H "X-Api-Key: 6HUXQFbeomV1zf5i8cgm5W8KfncENVEa5uh8RngB" \
-H "X-Version: 2023-10-31" \Exemple de réponse :
{
"id": "pm_RqN18WngsfAohSze48DUcjQSYceYqW7iJSm25RHJwSkRduEkq",
"active": true,
"card": {
"expiryMonth": 12,
"expiryYear": 2024,
"holderName": "TEST CARDHOLDER",
"maskedNumber": "411111**1111"
},
"category": "recurrent",
"created": "2024-05-02T05:45:21Z",
"merchantCustomerId": "12345",
"type": "card"
}Vous pouvez également récupérer la liste de toutes les données de paiement sauvegardées d'un client particulier. À cette fin, utilisez la requête /customers/{id}/paymentMethods où id est un identifiant du client. Pour plus de détails, référez-vous à la Référence API.
Exemple de requête :
curl -X GET "https://dev.bpcbt.com/api2/customers/12345/paymentMethods" \
-H "X-Api-Key: 6HUXQFbeomV1zf5i8cgm5W8KfncENVEa5uh8RngB" \
-H "X-Version: 2023-10-31" \Exemple de réponse :
{
"hasMore": false,
"list": [
{
"id": "pm_RkTTfDXaEx13ayyYDayK4HpJSxex6kEmBjjQfVHSxMQUvQ6rD",
"active": true,
"card": {
"expiryMonth": 12,
"expiryYear": 2024,
"holderName": "TEST CARDHOLDER",
"maskedNumber": "444455**3333"
},
"category": "unscheduled",
"created": "2024-04-01T03:28:58Z",
"merchantCustomerId": "12345",
"type": "card"
},
{
"id": "pm_RqN18WngsfAohSze48DUcjQSYceYqW7iJSm25RHJwSkRduEkq",
"active": true,
"card": {
"expiryMonth": 12,
"expiryYear": 2024,
"holderName": "TEST CARDHOLDER",
"maskedNumber": "411111**1111"
},
"category": "recurrent",
"created": "2024-05-02T05:45:21Z",
"merchantCustomerId": "12345",
"type": "card"
}
]
}Mise à jour des données de paiement sauvegardées
Vous pouvez activer ou désactiver le Moyen de paiement ainsi que modifier sa date d'expiration en utilisant la requête POST /paymentMethods/{id}, où id est l'identifiant du Moyen de paiement.
La requête doit contenir les paramètres suivants :
-
active— Indique un Moyen de paiement actif ou inactif (trueoufalse). Les paiements ne peuvent pas être effectués avec un Moyen de paiement inactif. -
expiryDate— La date après laquelle les paiements ne sont pas autorisés avec ce Moyen de paiement.
Pour plus de détails, consultez Référence API.
Exemple de requête :
curl -X POST "https://dev.bpcbt.com/api2/paymentMethods/pm_RqN18WngsfAohSze48DUcjQSYceYqW7iJSm25RHJwSkRduEkq" \
-H "X-Api-Key: 6HUXQFbeomV1zf5i8cgm5W8KfncENVEa5uh8RngB" \
-H "X-Version: 2023-10-31" \
-H "Content-Type: application/json" \
-d '{
"active": true,
"expiryDate": "2025-08-24"
}'Exemple de réponse :
{
"id": "pm_RqN18WngsfAohSze48DUcjQSYceYqW7iJSm25RHJwSkRduEkq",
"active": true,
"card": {
"expiryMonth": 8,
"expiryYear": 2025,
"holderName": "TEST CARDHOLDER",
"maskedNumber": "411111**1111"
},
"category": "recurrent",
"created": "2024-05-02T05:45:21Z",
"merchantCustomerId": "12345",
"type": "card"
}Payer avec des Données de paiement sauvegardées
Pour payer en utilisant des Données de paiement sauvegardées, il est nécessaire de transmettre son identifiant dans le paramètre storedPaymentMethod.id de la requête de création de paiement (/payments). Pour plus de détails, consultez Référence API.
Exemple de requête :
curl -X POST "https://dev.bpcbt.com/api2/payments" \
-H "X-Api-Key: 6HUXQFbeomV1zf5i8cgm5W8KfncENVEa5uh8RngB" \
-H "X-Version: 2023-10-31" \
-H "Content-Type: application/json" \
-d '{
"amount": 11000,
"currency": "EUR",
"description": "Some description",
"merchantCustomerId": "12345",
"metadata": {},
"storedPaymentMethod": {
"id": "pm_RqN18WngsfAohSze48DUcjQSYceYqW7iJSm25RHJwSkRduEkq"
},
"returnUrl": "https://mybestmerchantreturnurl.com/"
}
}'