Traiter un achat
POST /cardpayments/v1/accounts/account_id/auths
Cette requête API vérifie que le compte d’un client est valide et que les fonds disponibles sont suffisants pour couvrir le coût de la transaction. Les fonds sont « retenus » et déduits de la limite de crédit du client (ou de son solde bancaire, dans le cas d’une carte de débit), mais ne sont pas encore transférés au marchand. En fin de journée, Paysafe Group soumet les règlements à l’état PENDING à l’acquéreur dans le cadre d’un transfert par lots, ce qui lance le processus de règlement.
Les fonds sont transférés du compte du client au compte du marchand, et la transaction peut ne pas apparaître sur le relevé de compte du client ou sur l’activité du compte en ligne avant un ou deux jours; le dépôt des fonds sur le compte du marchand peut prendre jusqu’à trois jours ouvrables.
Pour effectuer un achat, vous devez initier une requête POST au point de terminaison auths.
Par défaut, un montant est autorisé sur la carte et une requête de règlement ultérieure est nécessaire pour débiter le client. Toutefois, en définissant le marqueur settleWithAuth sur « true » le système de traitement des cartes débite automatiquement la carte dans le cadre de la même requête. Pour appliquer la fonctionnalité de paiements fractionnés, vous devez définir ce marqueur sur « true ».
Si vous expédiez des articles physiques, vous devez utiliser le paramètre par défaut pour autoriser l’achat avant de débiter la carte, et n’effectuer le règlement qu’une fois les articles expédiés.
Voir notre documentation API complète pour une description intégrale des paramètres requis pour la requête d’authentification.
curl -X POST https://api.test.paysafe.com/cardpayments/v1/accounts/89987201/auths \
-u devcentre322:B-qa2-0-53625f86-302c021476f52bdc9deab7aea876bb28762e62f92fc6712d0214736abf501e9675e55940e83ef77f5c304edc7968 \
-H 'Content-Type: application/json' \
-d ' {
"merchantRefNum": "demo-1",
"amount": 10098,
"settleWithAuth": true,
"card": {
"cardNum": "4111111111111111",
"cardExpiry": {
"month": 2,
"year": 2027
},
"cvv": 123
},
"billingDetails": {
"street": "100 Queen Street West",
"city": "Toronto",
"state": "ON",
"country": "CA",
"zip": "M5H 2N2"
}
} '
Par défaut, le système de traitement des cartes vérifie qu’il n’y a pas de transactions en double.
Avant d’essayer l’exemple, vous devez :
- Remplacer le numéro de compte (89987201) dans l’URL par le numéro de compte de test que vous avez reçu.
- Remplacer la clé API (après le -u) par la clé API que vous avez reçue.
- Fournir un numéro de référence unique pour chaque transaction.
Le montant est spécifié en unités mineures de la devise du compte marchand définies à l’aide du paramètre de l’URL account_id. Par exemple, pour traiter 10,99 $ US, cette valeur doit être 1099. Pour traiter 1 000 yens japonais, cette valeur doit être 1 000. Pour traiter 10 139 dinars tunisiens, cette valeur doit être 10139.
La requête contient les paramètres suivants :
Élément | Élément enfant | Type | Requis? | Description |
---|---|---|---|---|
merchantRefNum | string | Oui | Il s’agit du numéro de référence du marchand, créé par ce dernier, et soumis dans le cadre de la requête. Un numéro de référence unique du marchand doit être fourni pour chaque transaction. | |
montant | integer | Oui | Il s’agit du montant de la requête, en unités mineures. Utilisez le montant correct des unités mineures pour la devise du compte. Par exemple, pour traiter 10,99 $ US, cette valeur doit être 1099. Pour traiter 1 000 yens japonais, cette valeur doit être 1 000. Pour traiter 10 139 dinars tunisiens, cette valeur doit être 10139. | |
settleWithAuth | boolean | No | Indique si la requête est une autorisation (pas de règlement) ou un achat (autorisation et règlement). La valeur par défaut est false. | |
carte | cardNum | string | Oui | Il s’agit du numéro de carte utilisé pour la requête. |
cardExpiry | object | Oui | Il s’agit de la date d’expiration de la carte. Les paramètres suivants sont requis :
| |
cvv | string longueur=3-4 | No | Il s’agit du code de sécurité à 3 ou 4 chiffres qui apparaît sur la carte, après le numéro de carte. | |
billingDetails | street | string length<=50 | No | Il s’agit de la première ligne de l’adresse municipale figurant dans l’adresse de facturation. |
city | string length<=40 | No | Il s’agit de la ville figurant dans l’adresse de facturation. | |
state | string length<=40 | No | Il s’agit de la province ou de l’État ou de la province figurant dans l’adresse de facturation. | |
country | string length=2 | No | Il s’agit du pays figurant dans l’adresse de facturation. | |
zip | string length<=10 | No | Il s’agit du code postal de l’adresse de facturation. |
{
"links":[
{
"rel":"self",
"href":"https://api.test.paysafe.com/cardpayments/v1/accounts/89987201/auths/ebf6ae3d-88e1-40da-9b98-81044467345b"
},
{
"rel":"settlement",
"href":"https://api.test.paysafe.com/cardpayments/v1/accounts/89987201/settlements/ebf6ae3d-88e1-40da-9b98-81044467345b"
},
],
"id":"ebf6ae3d-88e1-40da-9b98-81044467345b",
"merchantRefNum":"demo-1",
"txnTime":"2017-05-01T14:52:35Z",
"status":"COMPLETED",
"amount":10098,
"settleWithAuth":true,
"availableToSettle":0,
"card":{
"type":"VI",
"lastDigits":"1111",
"cardExpiry":{
"month":2,
"year":2027
}
},
"authCode":"114974",
"billingDetails":{
"street":"100 Queen Street West",
"city":"Toronto",
"state":"ON",
"country":"CA",
"zip":"M5H2N2"
},
"merchantDescriptor":{
"dynamicDescriptor":"Test",
"phone":"123-1234123"
},
"currencyCode":"CAD",
"avsResponse":"MATCH",
"settlement" : {
"links": [
{
"rel": "self",
"href": "https://api.test.paysafe.com/cardpayments/v1/accounts/89987201/settlements/ebf6ae3d-88e1-40da-9b98-81044467345b"
}
],
"id": "ebf6ae3d-88e1-40da-9b98-81044467345b",
"merchantRefNum": "demo-1",
"txnTime": "2017-05-01T14:52:35Z",
"status": "PENDING",
"amount": 10098,
"availableToRefund": 0
}
}
L’état est défini à COMPLETED et la valeur de availableToSettle est 0 parce que la carte a été débitée automatiquement dans le cadre de la requête, étant donné que le signalement settleWithAuth a été défini sur « true ». Vous pouvez consulter la transaction à tout moment en utilisant le merchantRefNum ou l’identifiant renvoyé dans la réponse.
Les paramètres de réponse non contenus dans la requête sont décrits ci-dessous :
Élément | Élément enfant | Type | Description |
---|---|---|---|
links | tableau d’objets de lien | Contient un lien « self » qui peut être utilisé pour obtenir des détails sur l’autorisation de cet achat. Contient un lien de règlement qui peut être utilisé pour obtenir des informations sur le règlement (saisie) associé à cet achat. | |
Id | string length<=36 | Identifiant unique pour cette opération d’achat. Cet identifiant peut être utilisé pour consulter le résultat de l’autorisation et du règlement (saisie) associés à cet achat. | |
txnTime | string | Il s’agit de l’heure et de la date de la transaction au format TUC. | |
status | enum | L’état de l’autorisation associé à cet achat. Les valeurs éventuelles sont :
| |
availableToSettle | integer max=99999999999 | Il s’agit du montant restant à régler. Le marchand doit vérifier que cette valeur est égale à 0 pour confirmer que l’autorisation a été entièrement réglée (saisie). | |
carte | type | enum | Il s’agit du numéro de carte utilisé pour la requête. Les valeurs éventuelles sont :
|
lastDigits | string | Il s’agit des quatre derniers chiffres de la carte utilisée pour la requête. | |
authCode | string length<=50 | Il s’agit du code d’autorisation renvoyé par la banque émettrice. | |
merchantDescriptor | dynamicDescriptor | string | Il s’agit d’un descripteur de marchand qui sera affiché sur le relevé de carte du client. |
phone | string | Il s’agit du numéro de téléphone du marchand, qui sera ajouté au descripteur du marchand sur le relevé de carte du client. | |
currencyCode | string length=3 | Il s’agit du code de devise à trois chiffres du compte marchand spécifié dans le paramètre URL de requête account_id. | |
avsResponse | enum | Il s’agit de la réponse du service de vérification d’adresse (SVA) de l’émetteur de la carte :
L’adresse dans l’objet billingDetails de la requête est vérifiée par rapport à l’adresse que l’émetteur a dans ses dossiers pour la carte. | |
settlements | links | tableau d’objets de lien | Ce paramètre contient un lien « self » unique qui peut être utilisé pour obtenir des détails sur le règlement (saisie). |
Id | string length<=36 | Il s’agit de l’identifiant unique du règlement (saisie). Cet identifiant peut être utilisé pour consulter les détails du règlement. | |
merchantRefNum | string length<=255 | Il s’agit du numéro de référence du marchand. | |
txnTime | string | Il s’agit de l’heure et de la date de la transaction au format TUC. | |
status | enum | L’état du règlement. Les valeurs éventuelles sont :
| |
montant | integer max=99999999999 | Il s’agit du montant imputé, en unités mineures. | |
availableToRefund | integer max=99999999999 | Il s’agit du montant en unités mineures disponible pour le remboursement. Le paramètre availableToRefund sera 0 si le règlement échoue (status=FAILED). Si le règlement aboutit, il sera égal au montant. |
Séquence de message d’achat