Transactions par carte de crédit et de débit
Cette page décrit comment traiter les transactions par carte de crédit et de débit via le service Web Paysafe. Les opérations suivantes sont prises en charge :
Opération | Description | Type de requête |
---|---|---|
Autorisation | Permet d’autoriser un montant sur la carte de crédit/débit d’un client. Le montant autorisé doit être réglé lors d’une opération de règlement ultérieure. | |
Achat | Permet d’autoriser et de régler un montant sur la carte de crédit/débit d’un client en une seule transaction. | |
Vérification | Permet d’effectuer une vérification SVA et/ou CVD sur la carte de crédit d’un client sans effectuer de débit sur cette carte. | |
Renversement d’autorisation | Permet de renverser la totalité ou une partie d’une autorisation existante, à condition qu’aucun règlement (total ou partiel) n’ait été traité par rapport à cette autorisation. Ce type de transaction ne fonctionne pas avec les transactions d’achat, mais uniquement avec les autorisations. | |
Crédit | Permet de créditer à nouveau la carte de crédit/débit d’un client d’un montant qui a déjà été réglé. Vous pouvez créditer la totalité ou une partie d’un règlement existant. | |
Règlement | Permet de régler un montant précédemment autorisé sur la carte de crédit/débit d’un client. Vous pouvez régler la totalité ou une partie d’une autorisation existante. | |
Autorisation avec données stockées | Permet d’autoriser un montant sur la carte de crédit/débit d’un client en utilisant les données du client qui sont stockées dans notre base de données. Vous ne fournissez qu’un minimum d’informations, ce qui vous permet d’économiser du temps et des efforts. | |
Données d’achat stockées | Permet d’autoriser et de régler un montant sur la carte de crédit/débit d’un client en utilisant les données du client qui sont stockées dans notre base de données. Vous ne fournissez qu’un minimum d’informations, ce qui vous permet d’économiser du temps et des efforts. | |
Annuler | Permet d’annuler une transaction de crédit, de règlement, de paiement ou de crédit autonome. Vous pouvez annuler l’une de ces transactions tant qu’elle est en attente, c’est-à-dire généralement avant minuit le jour où elle est demandée. Dans certains cas, vous pouvez trouver d’anciennes transactions de crédit en attente. | |
Paiement | Permet de créditer un montant sur la carte de crédit d’un client. La transaction de paiement n’est pas associée à une autorisation existante, de sorte que le montant de la transaction n’est pas limité de cette manière. | |
Crédit autonome | Permet de créditer un montant sur la carte de crédit d’un client. La transaction de crédit autonome n’est pas associée à une autorisation existante, de sorte que le montant de la transaction n’est pas limité de cette manière. | |
Recherche d’informations | Permet d’exécuter un rapport via l’API sur une plage de dates que vous spécifiez afin de renvoyer des données sur les transactions par carte de crédit traitées par votre compte marchand. | |
Recherches d’affiliations | Permet de déterminer si la carte de crédit d’un client est inscrite au programme 3D Secure. REMARQUE: Cette opération n’est prise en charge que pour 3D Secure 1.0.2. | |
Authentification | Permet d’envoyer une requête d’authentification afin de valider le mot de passe du titulaire d’une carte de crédit inscrite au programme 3D Secure. REMARQUE: Cette opération n’est prise en charge que pour 3D Secure 1.0.2. |
La disponibilité des types d’opérations par carte de crédit est attribuée en fonction du marchand, étant donné que toutes les banques des marchands ne prennent pas en charge toutes les opérations. Si vous avez des questions, veuillez communiquer avec votre gestionnaire de compte.
- Les opérations d’autorisation, d’achat et de vérification acceptent un objet de document ccAuthRequestV1.
- L’opération de renversement d’autorisation accepte un objet de document ccAuthReversalRequestV1.
- Les opérations de règlement et de crédit acceptent un objet de document ccPostAuthRequestV1.
- Les opérations de données stockées acceptent un objet de document ccStoredDataRequestV1.
- Les opérations d’annulation de règlement, d’annulation de crédit et d’annulation de paiement acceptent un objet de document ccCancelRequestV1.
- Les opérations de paiement et de crédit autonome acceptent un objet de document ccPaymentRequestV1.
- L’opération de recherche d’informations accepte un objet de document ccTxnLookupRequestV1.
- L’opération de recherche d’inscription accepte un objet de document ccEnrollmentLookupRequestV1.
- L’opération d’authentification accepte un objet de document ccAuthenticateRequestV1.
- Toutes les opérations renvoient une réponse ccTxnResponseV1.
Exemple .NET
Créer des requêtes d’achat/autorisation/vérification.
Les requêtes d’achat, d’autorisation et de vérification nécessitent l’objet de document ccAuthRequestV1. Cette section décrit la structure d’une ccAuthRequestV1 et la manière d’en créer une.
Exemple d’achat – C#
Tous les éléments facultatifs qui prennent des types de données non annulables (p. ex. int ou enum) doivent avoir leur attribut spécifié fixé sur « true » lors de la définition des valeurs pour ces éléments. Voir l’élément cardType dans l’exemple ci-dessous.
Voici un exemple d’achat en C#.
Pour en faire une requête d’autorisation ou de vérification, modifiez la valeur “ccPurchase” – dans la ligne “CCTxnResponseV1 ccTxnResponse = ccService.ccPurchase(ccAuthRequest);” ci-dessous – à “ccAuthorize” ou “ccVerification”, respectivement.
//Prepare the call to the Credit Card Web Service
CCAuthRequestV1 ccAuthRequest = new CCAuthRequestV1();
MerchantAccountV1 merchantAccount = new MerchantAccountV1();
merchantAccount.accountNum = "12345678";
merchantAccount.storeID = "myStoreID";
merchantAccount.storePwd = "myStorePWD";
ccAuthRequest.merchantAccount = merchantAccount;
ccAuthRequest.merchantRefNum = "Ref-12345";
ccAuthRequest.amount = "10.00";
CardV1 card = new CardV1();
card.cardNum = "4653111111111111";
CardExpiryV1 cardExpiry = new CardExpiryV1();
cardExpiry.month = 11;
cardExpiry.year = 2006;
card.cardExpiry = cardExpiry;
card.cardType = CardTypeV1.VI;
card.cardTypeSpecified = true;
card.cvdIndicator = 1;
card.cvdIndicatorSpecified = true;
card.cvd = "111";
ccAuthRequest.card = card;
BillingDetailsV1 billingDetails = new BillingDetailsV1();
billingDetails.cardPayMethod = CardPayMethodV1.WEB; //WEB = Card Number Provided
billingDetails.cardPayMethodSpecified = true;
billingDetails.firstName = "Jane";
billingDetails.lastName = "Jones";
billingDetails.street = "123 Main Street";
billingDetails.city = "LA";
billingDetails.Item = (object) StateV1.CA; // California
billingDetails.country = CountryV1.US; // United States
billingDetails.countrySpecified = true;
billingDetails.zip = "90210";
billingDetails.phone = "555-555-5555";
billingDetails.email = "janejones@emailserver.com";
ccAuthRequest.billingDetails = billingDetails;
ccAuthRequest.customerIP = "127.0.0.1";
ccAuthRequest.productType = ProductTypeV1.M;
//M = Both Digital and Physical(e.g., software downloaded followed by media
shipment)
ccAuthRequest.productTypeSpecified = true;
// Perform the Web Services call for the purchase
CreditCardServiceV1 ccService = new CreditCardServiceV1();
CCTxnResponseV1 ccTxnResponse = ccService.ccPurchase(ccAuthRequest);
// Print out the result
String responseTxt = ccTxnResponse.code + " - " + ccTxnResponse.decision + " - "
+ ccTxnResponse.description + Environment.NewLine;
if (ccTxnResponse.detail != null)
{
for (int i = 0; i < ccTxnResponse.detail.Length; i++)
{
responseTxt += " - " + ccTxnResponse.detail[i].tag + " - " +
ccTxnResponse.detail[i].value + Environment.NewLine;
}
}
responseTxt = responseTxt.Replace("\n", Environment.NewLine);
System.Console.WriteLine(responseTxt);
if (DecisionV1.ACCEPTED.Equals(ccTxnResponse.decision))
{
System.Console.WriteLine("Transaction Successful.");
}
else
{
System.Console.WriteLine("Transaction Failed with decision: " +
ccTxnResponse.decision);
}
Schéma ccAuthRequestV1
L’élément ccAuthRequestV1 a la structure suivante :
Éléments ccAuthRequestV1
L’objet de document ccAuthRequestV1 peut contenir les éléments suivants :
Élément | Élément enfant | Requis | Type | Description |
---|---|---|---|---|
merchantAccount | accountNum | Oui | string Max = 10 | Il s’agit du numéro de compte marchand. |
storeID | Oui | string Max = 80 | Il s’agit de l’identifiant du magasin Paysafe, utilisé pour authentifier la requête. Il est défini par Paysafe et fourni au marchand dans le cadre du processus d’intégration. | |
storePwd | Oui | string Max = 20 | Il s’agit du mot de passe du magasin Paysafe, utilisé pour authentifier la requête. Il est défini par Paysafe et fourni au marchand dans le cadre du processus d’intégration. | |
merchantRefNum | Oui | string Max = 255 | Il s’agit d’un numéro d’identification unique associé à chaque requête. La valeur est créée par le marchand et soumise dans le cadre de la requête. | |
customerTokenId | Pour usage interne seulement | |||
montant | Oui | string Max= | Il s’agit du montant de la requête de transaction. REMARQUE : Bien qu’elle soit obligatoire, cette valeur sera ignorée pour la transaction ccVerification. | |
carte | cardNum | Oui | string Min = 8 Max = 20 | Il s’agit du numéro de carte utilisé pour la transaction. |
cardExpiry | Oui | L’élément enfant cardExpiry comporte deux autres éléments enfants – month et year. | ||
Élément enfant de cardExpiry | ||||
month | Oui | Int Max = 2 | Il s’agit du mois d’expiration de la carte. | |
year | Oui | Int Longueur = 4 | Il s’agit de l’année d’expiration de la carte. | |
cardType | Facultatif | enumeration | Il s’agit du type de carte utilisé pour la transaction. Les valeurs éventuelles sont : • AM – American Express • DC – Diners Club • DI – Discover • JC – JCB • MC – Mastercard • MD – Maestro • SF – Swiff • SO – Solo • VD – Visa Debit • VE – Visa Electron • VI – Visa | |
issueNum | Facultatif | nombre entier Max = 2 | Numéro à 1 ou 2 chiffres situé au recto de la carte, après le numéro de la carte. REMARQUE : L’élément issueNum peut être utilisé uniquement lorsque le cardType est MD (Maestro) ou SO (Solo). | |
cvdIndicator | Facultatif | nombre entier Longueur = 1 | Il s’agit de l’état de l’information sur la valeur du CVD. • 0 – Le client n’a pas fourni de valeur. • 1 – Le client a fourni une valeur. • 2 – La valeur est illisible. • 3 – La valeur ne figure pas sur la carte. REMARQUE : L’élément cvdIndicator est obligatoire pour la transaction ccVerification. Notez également que même si cet élément est facultatif, il est requis pour plusieurs vérifications liées au risque, et nous vous conseillons vivement de l’inclure afin d’éviter que des transactions échouent. | |
cvd | Conditional | string Longueur = 3 ou 4 | 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. Ce code n’apparaît pas sur les impressions. REMARQUE : L’élément cvd est obligatoire lorsque la valeur de l’élément cvdIndicator = 1. | |
authentification REMARQUE : Utilisez cet élément uniquement avec les requêtes ccAuthorize ou ccPurchase. | indicator | Facultatif | nombre entier Valeur = 1 | Il s’agit du code de l’indicateur de commerce électronique, une valeur à deux chiffres renvoyée par l’émetteur de la carte indiquant si le titulaire de la carte a été authentifié avec succès. Les valeurs éventuelles sont : Visa / Amex / JCB 05 – Identifie une transaction authentifiée avec succès. 06 – Identifie une tentative de transaction authentifiée. 07 – Identifie une transaction non authentifiée. Mastercard • 01 – Identifie une transaction non authentifiée. 02 – Identifie une transaction authentifiée avec succès. Cette valeur est renvoyée dans l’élément enfant eci de l’élément tdsAuthenticateResponse dans la ccTxnResponseV1 à votre requête ccAuthenticateRequestV1. |
cavv | Facultatif | string Max = 80 | Il s’agit de la valeur de vérification de l’authentification du titulaire de la carte. Cette valeur est renvoyée dans l’élément enfant cavv de l’élément tdsAuthenticateResponse dans la ccTxnResponseV1 à votre requête ccAuthenticateRequestV1. | |
xid | Facultatif | string Max = 80 | Il s’agit de l’identificateur de transaction renvoyé par l’émetteur de la carte. Cette valeur est renvoyée dans l’élément enfant xid de l’élément tdsAuthenticateResponse dans la ccTxnResponseV1 à votre requête ccAuthenticateRequestV1. Remarque : Existe seulement pour 3D Secure 1.0.2. | |
enrollmentStatus | Facultatif | enumeration | Indique si l’authentification 3D Secure est possible pour le titulaire de la carte. Les valeurs éventuelles sont : • Y – Authentification possible • N – Titulaire de la carte non inscrit • U – Authentification non disponible • E – Erreur Remarque : Existe seulement pour 3D Secure 1.0.2. | |
authenticationStatus | Facultatif | enumeration | Indique le résultat de l’authentification. Les valeurs éventuelles sont : • Y – Le titulaire de la carte s’est authentifié avec succès auprès de l’émetteur de la carte. • A – L’authentification du titulaire de la carte a été tentée. • N – Le titulaire de la carte ne s’est pas authentifié auprès de l’émetteur de sa carte. • U – L’authentification auprès de l’émetteur de la carte n’était pas disponible. • E – Erreur • R – Transaction refusée REMARQUE : La valeur R n’existe que pour 3D Secure 2.| | |
directoryServerTransactionId | Facultatif | string Max = 36 | Il s’agit de l’identifiant de transaction de serveur répertoire unique requis pour Mastercard. REMARQUE : Cela n’existe que pour 3D Secure 2 et n’est requis que pour la marque Mastercard. | |
threeDSecureVersion | Facultatif | string Min = 5 Max = 8 | Il s’agit de la version du protocole 3D Secure. REMARQUE : Si aucune version n’est spécifiée dans la requête, la valeur par défaut est 1.0.2. et est reprise dans la réponse. | |
authCode | Facultatif | string Max = 50 | Il s’agit du code d’autorisation attribué par la banque émettrice et renvoyé par Paysafe pour une transaction antérieure. REMARQUE : Incluez cet élément uniquement si vous en recevez l’instruction de la part de Paysafe. | |
billingDetails | cardPayMethod | Facultatif | enumeration | C’est ainsi que la carte a été présentée pour la transaction. Les valeurs éventuelles sont : • WEB – Numéro de carte communiqué en ligne • TEL – Numéro de carte communiqué par téléphone • P – Avec carte • PD – Avec carte en différé • D – Différé REMARQUE : Incluez cet élément uniquement si vous en recevez l’instruction de la part de Paysafe. |
firstName | Facultatif | string Max = 40 | Il s’agit du prénom du client. | |
lastName | Facultatif | string Max = 40 | Il s’agit du nom de famille du client. | |
street | Facultatif | string Max = 50 | Il s’agit de la première ligne de l’adresse du client. REMARQUE : L’élément street est obligatoire si vous traitez une transaction ccVerification. | |
street2 | Facultatif | string Max = 50 | Il s’agit de la deuxième ligne de l’adresse du client. | |
city | Facultatif | string Max = 40 | Il s’agit de la ville de résidence du client. | |
state/region | Facultatif | Si État, Si région, alors chaîne | Il s’agit de l’État, de la province ou de la région de résidence du client. Indiquez l’État/la province pour les États-Unis ou le Canada. Indiquez la région pour ailleurs qu’aux États-Unis ou au Canada. | |
country | Facultatif | enumeration | Il s’agit du pays de résidence du client. | |
zip | Obligatoire | string Max = 10 | Il s’agit du code ZIP du client s’il se trouve aux États-Unis; sinon, il s’agit du code postal du client. | |
phone | Facultatif | string Max = 40 | Il s’agit du numéro de téléphone du client. | |
adresse courriel | Facultatif | string Max = 100 | Il s’agit de l’adresse courriel du client. | |
shippingDetails | carrier | Facultatif | enumeration | Il s’agit du transporteur. • APC – APC le lendemain • APS – AnPost • CAD = Service postal du Canada • DHL • FEX – Fedex • RML – Royal Mail • UPS = United Parcel Service • USPS = United States Postal Service • AUTRE |
shipMethod | Facultatif | enumeration | Il s’agit du mode d’expédition. • N = Next Day/Overnight (Le lendemain) • T = Two-Day Service (Service en deux jours) • C – Lowest Cost (Coût le plus bas) • O – Other (Autre) | |
firstName | Facultatif | string Max = 40 | Il s’agit du prénom du destinataire. | |
lastName | Facultatif | string Max = 40 | Il s’agit du nom de famille du destinataire. | |
street | Facultatif | string Max = 50 | Il s’agit de la première ligne de l’adresse du destinataire. | |
street2 | Facultatif | string Max = 50 | Il s’agit de la deuxième ligne de l’adresse du destinataire. | |
city | Facultatif | string Max = 40 | Il s’agit de la ville de résidence du destinataire. | |
state/region | Facultatif | Si État, Si région, alors chaîne | Il s’agit de l’État, de la province ou de la région de résidence du destinataire. Indiquez l’État/la province pour les États-Unis ou le Canada. Indiquez la région pour ailleurs qu’aux États-Unis ou au Canada. | |
country | Facultatif | enumeration | Il s’agit du pays de résidence du destinataire. | |
zip | Facultatif | string Max = 10 | Il s’agit du code ZIP du destinataire s’il se trouve aux États-Unis; sinon, il s’agit du code postal du destinataire. | |
phone | Facultatif | string Max = 40 | Il s’agit du numéro de téléphone du destinataire. | |
adresse courriel | Facultatif | string Max = 100 | Il s’agit de l’adresse courriel du destinataire. | |
recurring | Facultatif | REMARQUE : Vous ne pouvez pas inclure à la fois l’élément recurring et l’élément storedCredential dans la même requête d’autorisation. Paysafe recommande d’utiliser storedCredential. | ||
recurringIndicator | Conditional | enumeration | Ce paramètre permet d’indiquer si une transaction est une transaction initiale ou récurrente, lorsqu’il s’agit d’un client pour lequel vous traiterez des transactions récurrentes. En fonction de la passerelle de traitement utilisée, si la valeur pour une transaction répétée est définie sur R, la passerelle peut être plus indulgente concernant certaines exigences comme les données CVD et les informations sur l’adresse, autorisant la requête sans ces données. Les valeurs éventuelles sont : • I –Initial Recurring (Récurrente initiale) • R – Subsequent Recurring (Récurrente ultérieure) | |
originalConfirmation | Conditional | string Max = 15 | Pour une transaction récurrente, il s’agit du numéro de confirmation renvoyé par Paysafe pour la première transaction de la série. Si vous incluez cette valeur, Paysafe pourra identifier plus précisément une autorisation de règlement ou un règlement au crédit, si l’une ou l’autre de ces transactions s’avère nécessaire à l’avenir. | |
previousConfirmation | Conditional | string Max = 15 | Pour une transaction récurrente, il s’agit du numéro de confirmation renvoyé par Paysafe pour la transaction la plus récente de la série. Si vous incluez cette valeur, Paysafe pourra identifier plus précisément une autorisation de règlement ou un règlement au crédit, si l’une ou l’autre de ces transactions s’avère nécessaire à l’avenir. | |
storedCredential | Facultatif | L’élément StoredCredential est utilisé pour identifier les requêtes d’autorisation qui utilisent des numéros de carte de crédit stockés par les marchands, afin d’améliorer les taux d’autorisation et de réduire la fraude. REMARQUE : Vous ne pouvez pas inclure à la fois l’élément recurring et l’élément storedCredential dans la même requête d’autorisation. Paysafe recommande d’utiliser storedCredential. Si vous n’envoyez pas cet élément et que vous envoyez l’élément recurringIndicator avec la valeur R, le paramètre type sera défini par défaut sur RECURRING et le paramètre occurrence sera défini par défaut sur SUBSEQUENT. Si recurringIndicator est envoyé avec la valeur I, le paramètre type sera défini par défaut sur RECURRING et le paramètre occurrence sera défini par défaut sur INITIAL. | ||
type | Facultatif | enumeration | Ceci précise le type de requête effectuée. Les valeurs éventuelles sont : • ADHOC – Requête ponctuelle initiée par le consommateur • TOPUP – Requête non programmée, initiée par le marchand lorsque le solde d’un consommateur est inférieur à une limite fixée • RECURRING – Requête récurrente planifiée, initiée par le marchand | |
occurrence | Facultatif | enumeration | Indique si la requête d’authentifiant enregistrée est initiale ou récurrente. Les valeurs éventuelles sont : • INITIAL – Utilisé si le consommateur utilise cette carte de crédit pour la première fois • RECURRING – Utilisé lorsque le consommateur utilise cette carte de crédit pour des requêtes ultérieures REMARQUE : La valeur cvd de la carte est requise lorsque le paramètre est défini sur INITIAL. | |
customerIp | Facultatif | string Max = 50 | Il s’agit de l’adresse IP du client. | |
productType | Facultatif | enumeration | Il s’agit du type de produit vendu. • P – Physical Goods (Biens matériels) • D - Digital Goods (Biens numériques) • C - Digital Content (Contenu numérique) • G - Gift Certificate/Digital Cash (Certificat-cadeau/argent numérique) • S - Shareware (Partagiciel) • M - Both Digital and Physical (Numérique et matériel) • R - Account Replenish (Réapprovisionnement de compte) | |
targetVirtualAccount | No | Cet élément n’est pas applicable aux transactions par carte de crédit. | ||
cardRiskService | Pour usage interne seulement | |||
dupeCheck | Facultatif | Booléen | Confirme qu’il ne s’agit pas d’une requête en double. Une requête est considérée comme un doublon si le cardNum, le montant et le merchantRefNum sont identiques. | |
sdk | version | Conditional | string Max = 20 | Il s’agit de la version de la SDK utilisée, le cas échéant. Requis si l’élément sdk est fourni. |
platform | Conditional | string Max = 10 | Il s’agit du langage d’intégration de la SDK utilisée (p. ex. Java, .NET). Requis si l’élément sdk est fourni. | |
provider | Conditional | string Max = 20 | Il s’agit de l’auteur de la SDK utilisée. La valeur “op” est attribuée lorsque la SDK est fournie par Paysafe. Requis si l’élément sdk est fourni. | |
addendumData | tag | Facultatif | string Max = 30 | Il s’agit de données supplémentaires qui peuvent être jointes à la requête de transaction. |
value | Facultatif | string Max = 1024 | Il s’agit de données supplémentaires qui peuvent être jointes à la requête de transaction. | |
merchantDescriptor REMARQUE : Ce paramètre n’est pas pris en charge par toutes les passerelles de traitement. Contactez votre gestionnaire de compte pour de plus amples renseignements. | dynamicDescriptor | Facultatif | string Max = 25 | Il s’agit d’un descripteur de marchand qui sera affiché sur le relevé de carte de crédit du client. |
phone | Facultatif | string Max = 13 | Il s’agit du numéro de téléphone du marchand, qui sera ajouté au descripteur du marchand sur le relevé de carte de crédit du client. | |
accordD REMARQUE : Incluez cet élément uniquement si vous en recevez l’instruction de la part de Paysafe. | financingType | Conditional | enumeration | Il s’agit du type de financement offert. Les valeurs éventuelles sont : • D – Deferreed payment financing (Financement par paiement différé) • E – Equal payment financing (Financement à versements égaux) |
plan | Conditional | string Max = 3 | Il s’agit du numéro de plan pour cette opération de financement. | |
gracePeriod | Facultatif | nombre entier Max = 2 | Il s’agit du délai de grâce, en mois, associé aux opérations de paiement différé. | |
term | Facultatif | nombre entier Max = 2 | Il s’agit du nombre de paiements, en mois, pour les transactions à versements égaux. | |
description | Facultatif | string Max = 255 | Il s’agit d’une description de la transaction, fournie par le marchand. | |
cardEntryMode | Facultatif | enumeration | Il s’agit de la méthode utilisée pour saisir les informations relatives à la carte. Les valeurs éventuelles sont : • SWIPED – Un lecteur de cartes a été utilisé. • MANUAL – Le numéro de la carte a été saisi manuellement. | |
geoLocation | Facultatif | Il s’agit de l’emplacement géographique de la transaction mobile. | ||
latitude | Conditional | string Max = 24 | Il s’agit de la latitude de la transaction mobile (p. ex. 44,903889). | |
longitude | Conditional | string Max = 24 | Il s’agit de la longitude de la transaction mobile (p. ex. -77,255123). | |
walletTransactionId | Pour usage interne seulement. | |||
profile | dateOfBirth | Conditional | Ce champ vous permet d’enregistrer la date de naissance du titulaire de la carte, si vous l’avez. Il peut être utilisé pour aider à authentifier l’identité du client auprès d’un service de validation tiers. | |
Élément enfant de dateOfBirth | ||||
day | Obligatoire | nombre entier Min = 1 | Il s’agit du jour de naissance du client. | |
month | Obligatoire | nombre entier Min = 1 | Il s’agit du mois de naissance du client. | |
year | Obligatoire | nombre entier Min = 1900 | Il s’agit de l’année de naissance du client. | |
visaAdditionalAuthData | REMARQUE : Cet élément est pris en charge par Visa et Mastercard. Le bénéficiaire est réputé être la personne ou la partie qui a la relation contractuelle avec le marchand ou l’institution financière. Il peut être autre que le titulaire de la carte, p. ex. dans le cas d’un parent qui recharge le compte d’épargne d’un enfant. Par conséquent, les champs ne devraient pas être recueillis sur la même page que les renseignements sur le titulaire de carte, mais plutôt être transmis en arrière-plan à partir des dossiers du marchand. Incluez cet élément si votre code de catégorie de marchand est 6012 et que votre adresse commerciale est située au Royaume-Uni. Si vous avez des questions, veuillez communiquer avec votre gestionnaire de compte. Tous les champs sont facultatifs, mais des amendes peuvent être appliquées si les données ne sont pas fournies de manière systématique et que les rétrofacturations persistent. | |||
recipientDateOfBirth | Facultatif | |||
Élément enfant de recipientdateOfBirth | ||||
day | Conditional | nombre entier Min = 1 | Il s’agit du jour de naissance du bénéficiaire. | |
month | Conditional | nombre entier Min = 1 | Il s’agit du mois de naissance du bénéficiaire. | |
year | Conditional | nombre entier Min = 1900 | Il s’agit de l’année de naissance du bénéficiaire. | |
recipientZip | Facultatif | string Max = 10 | Il s’agit du code postal du bénéficiaire. REMARQUE : Les 3 derniers caractères ne sont pas envoyés au réseau bancaire. | |
recipientLastName | Facultatif | string Max = 40 | Il s’agit du nom de famille du destinataire. REMARQUE : Seuls les 6 premiers caractères sont envoyés au réseau bancaire. | |
recipientAccountNumber | Facultatif | string Max = 25 | Il s’agit du numéro de compte du bénéficiaire, p. ex. un numéro de contrat de prêt ou un identifiant de client. Advenant que le compte du bénéficiaire est une carte prépayée, le numéro de carte peut être envoyé en entier. REMARQUE : Seuls les 6 premiers et 4 derniers caractères sont envoyés au réseau bancaire et seront masqués en conséquence dans le module d’administration et dans tous les autres rapports, afin de respecter les réglementations PCI. |
addendumData tag/value pairs
Toutes les passerelles de traitement ne prennent pas en charge toutes les paires balise/valeur addendumData. Contactez votre gestionnaire de compte pour de plus amples renseignements.
Le tableau suivant contient les paires balise/valeur prises en charge pour l’élément AddendumData.
Tag | Valeur |
---|---|
CUST_ACCT_OPEN_DATE | Il s’agit de la date d’ouverture du compte marchand. Format = aaaammjj |
CUSTOMER_ID | Il s’agit d’un identifiant utilisé par le marchand. Maximum de 64 caractères numériques. |
CUSTOMER_SESSION_ID | Cette chaîne est utilisée pour lancer un appel de recherche auprès d’un profileur d’appareil. Il doit s’agir de la même chaîne que celle que vous utilisez comme identifiant de session dans le JavaScript de profilage sur la page HTML que vous présentez à votre client pour le profilage de son appareil. Caractères acceptés : [a-z][A-Z][_][-] |
KEYWORD | Cette valeur peut être n’importe quel texte que le marchand souhaite utiliser, p. ex. à des fins de rapports dans l’arrière-guichet marchand. Par exemple, vous pouvez l’utiliser comme balise pour identifier la transaction ou le produit acheté sur votre site. • Maximum de 255 caractères alphanumériques. • Peut être spécifié plusieurs fois, avec une valeur différente à chaque fois. • Valide pour les objets CCAuthRequestV1 et CCStoredDataRequestV1. |
MERCHANT_COUNTRY_CODE | Il s’agit d’un code de pays à deux caractères. Valeur non validée. |
MERCHANT_SIC_CODE | Il s’agit du code standard ISO (SIC) du marchand. Il s’agit d’une chaîne numérique de 4 caractères. |
MERCHANT_ZIP_CODE | Maximum de 10 caractères alphanumériques. |
PRODUCT_TYPE | Il s’agit du type de produit acheté Les valeurs éventuelles sont : • P – Physical Goods (Biens matériels) • D - Digital Goods (Biens numériques) • C - Digital Content (Contenu numérique) • G - Gift certificate/digital cash (Certificat-cadeau/argent numérique) • S - Shareware (Partagiciel) • M - Digital and physical (Numérique et matériel) • R – Account replenish (Réapprovisionnement du compte, p. ex renouvellement d’un abonnement) |
PRODUCT_CODE | Il s’agit du code produit de l’article acheté. Maximum de 18 caractères alphanumériques. |
SERVICE_REQUEST_CURRENCY REMARQUE : Cette paire balise/valeur peut être incluse dans l’objet document ccAuthRequestV1 uniquement (c.-à-d. pour les requêtes de transaction par carte d’autorisation, d’achat et de vérification). | Inclure cette paire balise/valeur pour que la devise du compte marchand soit renvoyée dans la réponse à la transaction. Valeurs éventuelles : • on • off |
USER_DATA_04 | Il s’agit d’un champ défini par l’utilisateur. Maximum de 255 caractères alphanumériques. |
USER_DATA_05 | Il s’agit d’un champ défini par l’utilisateur. Maximum de 255 caractères alphanumériques. |
USER_DATA_06 | Il s’agit d’un champ défini par l’utilisateur. Maximum de 255 caractères alphanumériques. |
Créer des requêtes d’annulation d’autorisation
Les requêtes d’annulation d’autorisation vous permettent d’annuler la totalité ou une partie d’une autorisation existante, à condition qu’aucun règlement (total ou partiel) n’ait été traité pour cette autorisation.
Vous pouvez utiliser les opérations d’annulation d’autorisation pour annuler les autorisations uniquement. Vous ne pouvez pas annuler les transactions d’achat.
Les requêtes d’annulation d’autorisation nécessitent l’objet document ccAuthReversalRequestV1. Cette section décrit la structure d’une ccAuthReversalRequestV1 et la manière d’en créer une.
Exemple d’annulation d’autorisation – C#
Voici un exemple d’annulation d’autorisation en C#.
//Prepare the call to the Credit Card Web Service
CCAuthReversalRequestV1 authReversalRequest = new CCAuthReversalRequestV1();
MerchantAccountV1 merchantAccount = new MerchantAccountV1();
merchantAccount.accountNum = "12345678";
merchantAccount.storeID = "myStoreID";
merchantAccount.storePwd = "myStorePWD";
authReversalRequest.merchantAccount = merchantAccount;
authReversalRequest.confirmationNumber = "115147689";
authReversalRequest.merchantRefNum = "AR2";
authReversalRequest.reversalAmount = "18.00";
// Perform the Web Services call for the Auth Reversal
CreditCardServiceV1 ccService = new CreditCardServiceV1();
CCTxnResponseV1 ccTxnResponse = ccService.ccAuthorizeReversal(authReversalRequest);
// Print out the result
String responseTxt = ccTxnResponse.confirmationNumber + " - " + ccTxnResponse.code + " - " + ccTxnResponse.decision + " - " + ccTxnResponse.description;
responseTxt += Environment.NewLine;
responseTxt += "Details:" + Environment.NewLine;
if (ccTxnResponse.detail != null)
{
for (int i = 0; i < ccTxnResponse.detail.Length; i++)
{
responseTxt += " - " + ccTxnResponse.detail[i].tag + " - " + ccTxnResponse.detail[i].value + Environment.NewLine;
}
}
responseTxt = responseTxt.Replace("\n", Environment.NewLine);
System.Console.WriteLine(responseTxt);
consoleTextBox.Text = responseTxt;
if (DecisionV1.ACCEPTED.Equals(ccTxnResponse.decision))
{
System.Console.WriteLine("Transaction Successful.");
}
else
{
System.Console.WriteLine("Transaction Failed with decision: " + ccTxnResponse.decision);
}
Schéma ccAuthReversalRequestV1
Une ccAuthReversalRequestV1 a la structure suivante :
Éléments ccAuthReversalRequestV1
L’objet document ccAuthReversalRequestV1 contient les éléments suivants :
Élément | Élément enfant | Requis | Type | Description |
---|---|---|---|---|
merchantAccount | accountNum | Oui | string Max = 10 | Il s’agit du numéro de compte marchand. |
storeID | Oui | string Max = 80 | Il s’agit de l’identifiant du magasin Paysafe, utilisé pour authentifier la requête. Il est défini par Paysafe et fourni au marchand dans le cadre du processus d’intégration. | |
storePwd | Oui | string Max = 20 | Il s’agit du mot de passe du magasin Paysafe, utilisé pour authentifier la requête. Il est défini par Paysafe et fourni au marchand dans le cadre du processus d’intégration. | |
confirmationNumber | Oui | string Max = 15 | Il s’agit du numéro de confirmation renvoyé par Paysafe pour l’autorisation que vous souhaitez annuler. | |
merchantRefNum | Oui | string Max = 255 | Il s’agit d’un numéro d’identification unique associé à chaque requête. La valeur est créée par le marchand et soumise dans le cadre de la requête. | |
reversalAmount | Facultatif | string Max= | Il s’agit du montant de l’autorisation initiale que vous souhaitez annuler. Si vous omettez cet élément, le montant total de l’autorisation initiale sera annulé. REMARQUE : Toutes les passerelles de traitement ne prennent pas en charge les annulations d’autorisation partielles. Contactez votre gestionnaire de compte pour de plus amples renseignements. | |
addendumData | tag | Facultatif | string Max = 30 | Il s’agit de données supplémentaires qui peuvent être jointes à la requête de transaction. |
value | Facultatif | string Max = 1024 | Il s’agit de données supplémentaires qui peuvent être jointes à la requête de transaction. | |
geoLocation | Facultatif | Il s’agit de l’emplacement géographique de la transaction mobile. | ||
latitude | Conditional | string Max = 24 | Il s’agit de la latitude de la transaction mobile (p. ex. 44,903889). | |
longitude | Conditional | string Max = 24 | Il s’agit de la longitude de la transaction mobile (p. ex. -77,255123). |
Créer des requêtes de règlement/crédit
Les requêtes de règlement et de crédit nécessitent l’objet document ccPostAuthRequestV1. Cette section décrit la structure d’une ccPostAuthRequestV1 et la manière d’en créer une.
Exemple de règlement – C#
Voici un exemple de règlement en C#.
Pour en faire une requête de crédit, il suffit de modifier la valeur “ccSettlement” – dans la ligne “CCTxnResponseV1 ccTxnResponse = ccService.ccSettlement(ccPostAuthRequest);” ci-dessous – à “ccCredit”.
//Prepare the call to the Credit Card Web Service
CCPostAuthRequestV1 ccPostAuthRequest = new CCPostAuthRequestV1();
ccPostAuthRequest.confirmationNumber = "123456";
MerchantAccountV1 merchantAccount = new MerchantAccountV1();
merchantAccount.accountNum = "12345678";
merchantAccount.storeID= "myStoreID";
merchantAccount.storePwd = "myStorePWD";
ccPostAuthRequest.merchantAccount = merchantAccount;
ccPostAuthRequest.merchantRefNum = "Ref-12345";
ccPostAuthRequest.amount = "10.00";
// Perform the Web Service call for the Settlement
CreditCardServiceV1 ccService = new CreditCardServiceV1();
CCTxnResponseV1 ccTxnResponse = ccService.ccSettlement(ccPostAuthRequest);
// Print out the result
String responseTxt = ccTxnResponse.code + " - " + ccTxnResponse.decision +
" - " + ccTxnResponse.description ;
responseTxt += "Details:" + Environment.NewLine;
if (ccTxnResponse.detail != null)
{
for (int i = 0; i < ccTxnResponse.detail.Length; i++)
{
responseTxt += " - " + ccTxnResponse.detail[i].tag + " - " +
ccTxnResponse.detail[i].value + Environment.NewLine;
}
}
responseTxt = responseTxt.Replace("\n", Environment.NewLine);
System.Console.WriteLine(responseTxt);
if (DecisionV1.ACCEPTED.Equals(ccTxnResponse.decision))
{
System.Console.WriteLine("Transaction Successful.");
}
else
{
System.Console.WriteLine("Transaction Failed with decision: " +
ccTxnResponse.decision);
}
Schéma ccPostAuthRequestV1
Un objet document ccPostAuthRequestV1 a la structure suivante :
Éléments ccPostAuthRequestV1
L’objet document ccPostAuthRequestV1 peut contenir les éléments suivants :
Élément | Élément enfant | Requis | Type | Description |
---|---|---|---|---|
merchantAccount | accountNum | Oui | string Max = 10 | Il s’agit du numéro de compte marchand. |
storeID | Oui | string Max = 20 | Il s’agit de l’identifiant du magasin Paysafe, utilisé pour authentifier la requête. Il est défini par Paysafe et fourni au marchand dans le cadre du processus d’intégration. | |
storePwd | Oui | string Max = 20 | Il s’agit du mot de passe du magasin Paysafe, utilisé pour authentifier la requête. Il est défini par Paysafe et fourni au marchand dans le cadre du processus d’intégration. | |
confirmationNumber | Oui | string Max = 15 | Il s’agit du numéro de confirmation renvoyé par Paysafe en réponse à la requête initiale. | |
merchantRefNum | Oui | string Max = 40 | Il s’agit d’un numéro d’identification unique associé à chaque requête. La valeur est créée par le marchand et soumise dans le cadre de la requête. | |
montant | Facultatif | string Max= | Il s’agit du montant de la requête de transaction. Vous pouvez régler la totalité ou une partie d’une autorisation. Vous pouvez créditer la totalité ou une partie d’un règlement. | |
origMerchantTxn | Conditional | string Max = 255 | Il s’agit de l’identifiant de transaction du marchand qui a été traité via l’API Prélèvement automatique et qui est maintenant crédité via l’API Services Web. | |
dupeCheck | Facultatif | Booléen | Confirme qu’il ne s’agit pas d’une requête en double. Une requête est considérée comme un doublon si le cardNum, le montant et le merchantRefNum sont identiques. | |
sdk | version | Conditional | string Max = 20 | Il s’agit de la version de la SDK utilisée, le cas échéant. Requis si l’élément sdk est fourni. |
platform | Conditional | string Max = 10 | Il s’agit du langage d’intégration de la SDK utilisée (p. ex. Java, .NET). Requis si l’élément sdk est fourni. | |
provider | Conditional | string Max = 20 | Il s’agit de l’auteur de la SDK utilisée. La valeur “op” est attribuée lorsque la SDK est fournie par Paysafe. Requis si l’élément sdk est fourni. | |
addendumData | tag | Facultatif | string Max = 30 | Il s’agit de données supplémentaires qui peuvent être jointes à la requête de transaction. |
value | Facultatif | string Max = 1024 | Il s’agit de données supplémentaires qui peuvent être jointes à la requête de transaction. | |
geoLocation | Facultatif | Il s’agit de l’emplacement géographique de la transaction mobile. | ||
latitude | Conditional | string Max = 24 | Il s’agit de la latitude de la transaction mobile (p. ex. 44,903889). | |
longitude | Conditional | string Max = 24 | Il s’agit de la longitude de la transaction mobile (p. ex. -77,255123). | |
accordD REMARQUE : Incluez cet élément uniquement si vous en recevez l’instruction de la part de Paysafe. Il ne peut pas être utilisé pour des requêtes de crédit. | Facultatif | Vous ne pouvez inclure l’élément accordD que si vous l’avez déjà fourni dans la requête d’autorisation que vous êtes en train de régler et que vous souhaitez modifier une ou plusieurs des conditions spécifiées dans les éléments enfants. | ||
financingType | Conditional | enumeration | Il s’agit du type de financement offert. Les valeurs éventuelles sont : • D – Deferreed payment financing (Financement par paiement différé) • E – Equal payment financing (Financement à versements égaux) | |
plan | Conditional | string Max = 3 | Il s’agit du numéro de plan pour cette opération de financement. | |
gracePeriod | Facultatif | nombre entier Max = 2 | Il s’agit du délai de grâce, en mois, associé aux opérations de paiement différé. | |
term | Facultatif | nombre entier Max = 2 | Il s’agit du nombre de paiements, en mois, pour les transactions à versements égaux. |
Créer des requêtes de données stockées
Les requêtes d’autorisation ou d’achat avec données stockées nécessitent l’objet document ccStoredDataRequestV1. Cette section décrit la structure d’une ccStoredDataRequestV1 et la manière d’en créer une.
Les requêtes de données stockées vous permettent d’effectuer des autorisations et des achats par carte de crédit en fournissant un minimum d’informations sur le client. La requête de données stockées nécessite un numéro de confirmation d’une autorisation ou d’un achat antérieur.
Le numéro de confirmation peut dater de 24 mois au maximum.
Ce numéro de confirmation permet à Paysafe d’accéder à la plupart des données nécessaires à la transaction à partir de sa base de données.
Si vous traitez une requête de données stockées à l’aide d’un numéro de confirmation provenant d’une transaction qui comprenait l’élément visaAdditionalAuthData, cette information sera incluse dans la nouvelle requête. Toutefois, si vous ajoutez l’élément visaAdditionalAuthData séparément à la nouvelle requête de données stockées, il remplacera toutes les données similaires associées au numéro de confirmation, pour cette requête uniquement.
Exemple d’autorisation de données stockées – C#
Voici un exemple d’autorisation de données stockées en C#.
Pour en faire une requête d’achat avec données stockées, il suffit de modifier la valeur “ccStoredDataAuthorize” – dans la ligne “CCTxnResponseV1 ccTxnResponse = ccService.ccStoredDataAuthorize(ccStoredDataRequest);” ci-dessous – à “ccStoredDataPurchase”.
//Prepare the call to the Credit Card Web Service
MerchantAccountV1 merchantAccount = new MerchantAccountV1();
merchantAccount.accountNum = "12345678";
merchantAccount.storeID = "myStoreID";
merchantAccount.storePwd = "myStorePWD";
CCStoredDataRequestV1 ccStoredDataRequest = new CCStoredDataRequestV1();
ccStoredDataRequest.confirmationNumber = "111374429";
ccStoredDataRequest.amount = "97.97";
ccStoredDataRequest.merchantRefNum = "jim55";
ccStoredDataRequest.merchantAccount = merchantAccount;
// Perform the Web Service call for the Stored Data Transaction
CreditCardServiceV1 ccService = new CreditCardServiceV1();
CCTxnResponseV1 ccTxnResponse = ccService.ccStoredDataAuthorize(ccStoredDataRequest);
String responseTxt = "";
// Print out the result
if (ccTxnResponse.detail != null)
{
for (int i = 0; i < ccTxnResponse.detail.Length; i++)
{
responseTxt += " - " + ccTxnResponse.detail[i].tag + " - " +
ccTxnResponse.detail[i].value + Environment.NewLine;
}
}
responseTxt = responseTxt.Replace("\n", Environment.NewLine);
System.Console.WriteLine(responseTxt);
if (DecisionV1.ACCEPTED.Equals(ccTxnResponse.decision))
{
System.Console.WriteLine("Transaction Successful.");
}
else
{
System.Console.WriteLine("Transaction Failed with decision: " +
ccTxnResponse.decision);
}
Schéma ccStoredDataRequestV1
Un objet document ccStoredDataRequestV1 a la structure suivante :
Éléments ccStoredDataRequestV1
L’objet document ccStoredDataRequestV1 peut contenir les éléments suivants :
Élément | Élément enfant | Requis | Type | Description |
---|---|---|---|---|
merchantAccount | accountNum | Requis | string Max = 10 | Il s’agit du numéro de compte marchand. |
storeID | Requis | string Max = 20 | Il s’agit de l’identifiant du magasin Paysafe, utilisé pour authentifier la requête. Il est défini par Paysafe et fourni au marchand dans le cadre du processus d’intégration. | |
storePwd | Requis | string Max = 20 | Il s’agit du mot de passe du magasin Paysafe, utilisé pour authentifier la requête. Il est défini par Paysafe et fourni au marchand dans le cadre du processus d’intégration. | |
merchantRefNum | Requis | string Max = 255 | Il s’agit d’un numéro d’identification unique associé à chaque requête. La valeur est créée par le marchand et soumise dans le cadre de la requête. | |
confirmationNumber | Requis | string Max = 15 | Il s’agit du numéro de confirmation renvoyé par Paysafe en réponse à la requête initiale. REMARQUE : Le numéro de confirmation peut dater de 24 mois au maximum. | |
montant | Requis | string Max= | Il s’agit du montant de la requête de transaction. | |
cardExpiry | month | Facultatif | Int Max = 2 | Il s’agit du mois d’expiration de la carte. Utilisez cet élément pour inclure des informations actualisées sur la date d’expiration de la carte, si nécessaire, à inclure avec le reste des données de la transaction. |
year | Facultatif | Int Longueur = 4 | Il s’agit de l’année d’expiration de la carte. Utilisez cet élément pour inclure des informations actualisées sur la date d’expiration de la carte, si nécessaire, à inclure avec le reste des données de la transaction. | |
cvdIndicator | Facultatif | nombre entier Longueur = 1 | Il s’agit de l’état de l’information sur la valeur du CVD. • 0 – Le client n’a pas fourni de valeur. • 1 – Le client a fourni une valeur. • 2 – La valeur est illisible. • 3 – La valeur ne figure pas sur la carte. | |
cvd | Conditional | string Longueur = 3 ou 4 | 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. Ce code n’apparaît pas sur les impressions. Lorsque vous fournissez le CVD pour une requête de données stockées, la transaction bénéficie d’une protection totale du CVD. Cependant, vous ne devez jamais stocker les informations CVD, mais demander au consommateur de les transmettre lors de la requête. REMARQUE : L’élément cvd est obligatoire lorsque la valeur de l’élément cvdIndicator = 1. | |
storedCredential | Facultatif | L’élément storedCredential est utilisé pour identifier les requêtes de données stockées qui utilisent des données de carte de crédit stockées par Paysafe. Dans ce cas, il s’agit des données de la carte associées à un numéro de confirmation renvoyé dans la réponse à une autorisation précédemment réussie. | ||
type | Facultatif | enumeration | Ceci précise le type de requête effectuée. Les valeurs éventuelles sont : • ADHOC – Requête ponctuelle initiée par le consommateur • TOPUP – Requête non programmée, initiée par le marchand lorsque le solde d’un consommateur est inférieur à une limite fixée • RECURRING – Requête récurrente planifiée, initiée par le marchand REMARQUE : La valeur par défaut est ADHOC. | |
occurrence | Facultatif | enumeration | Indique si la requête d’authentifiant enregistrée est initiale ou récurrente. Les valeurs éventuelles sont : • INITIAL – Utilisé si le consommateur utilise cette carte de crédit pour la première fois • SUBSEQUENT – Utilisé lorsque le consommateur utilise cette carte de crédit pour des requêtes ultérieures REMARQUE : La valeur par défaut est SUBSEQUENT. La valeur cvd de la carte est requise lorsque cette valeur est définie sur INITIAL. | |
merchantDescriptor REMARQUE : Ce paramètre n’est pas pris en charge par toutes les passerelles de traitement. Contactez votre gestionnaire de compte pour de plus amples renseignements. | dynamicDescriptor | Facultatif | string Max = 25 | Il s’agit d’un descripteur de marchand qui sera affiché sur le relevé de carte de crédit du client. |
phone | Facultatif | string Max = 13 | Il s’agit du numéro de téléphone du marchand, qui sera ajouté au descripteur du marchand sur le relevé de carte de crédit du client. | |
addendumData | tag | Facultatif | string Max = 30 | Il s’agit de données supplémentaires qui peuvent être jointes à la requête de transaction. |
value | Facultatif | string Max = 1024 | Il s’agit de données supplémentaires qui peuvent être jointes à la requête de transaction. |
Créer des requêtes d’annulation de transaction
Utilisez l’objet document CCCancelRequestV1 pour annuler les opérations de règlement, de crédit, de paiement et de crédit autonome. Cette section décrit la structure d’une ccCancelRequestV1 et la façon d’en construire une.
Exemple d’annulation de règlement – C#
Voici un exemple d’annulation de règlement en C#.
Pour en faire une requête d’annulation d’un crédit, d’un paiement ou d’un crédit autonome, il suffit de modifier la valeur “ccCancelSettle” – dans la ligne “CCTxnResponseV1 ccTxnResponse = ccService.ccCancelSettle(ccCancelRequest);” ci-dessous – à “ccCancelCredit”, “ccCancelPayment” ou “ccCancelIndependentCredit”, respectivement.
//Prepare the call to the Credit Card Web Service
CCCancelRequestV1 ccCancelRequest = new CCCancelRequestV1();
MerchantAccountV1 merchantAccount = new MerchantAccountV1();
merchantAccount.accountNum = "12345678";
merchantAccount.storeID= "myStoreID";
merchantAccount.storePwd = "myStorePWD";
ccCancelRequest.merchantAccount = merchantAccount;
ccCancelRequest.confirmationNumber = "123456";
// Perform the Web Services call for the cancel settle
CreditCardServiceV1 ccService = new CreditCardServiceV1();
CCTxnResponseV1 ccTxnResponse = ccService.ccCancelSettle(ccCancelRequest);
// Print out the result
String responseTxt = ccTxnResponse.code + " - " + ccTxnResponse.decision +
" - " + ccTxnResponse.description ;
responseTxt += "Details:" + Environment.NewLine;
if (ccTxnResponse.detail != null)
{
for (int i = 0; i < ccTxnResponse.detail.Length; i++)
{
responseTxt += " - " + ccTxnResponse.detail[i].tag + " - " +
ccTxnResponse.detail[i].value + Environment.NewLine;
}
}
responseTxt = responseTxt.Replace("\n", Environment.NewLine);
System.Console.WriteLine(responseTxt);
if (DecisionV1.ACCEPTED.Equals(ccTxnResponse.decision))
{
System.Console.WriteLine("Transaction Successful.");
}
else
{
System.Console.WriteLine("Transaction Failed with decision: " +
ccTxnResponse.decision);
}
Schéma ccCancelRequestV1
Un objet document CCCancelRequestV1 a la structure suivante :

Éléments ccCancelRequestV1
L’objet document ccCancelRequestV1 peut contenir les éléments suivants :
Élément | Élément enfant | Requis | Type | Description |
---|---|---|---|---|
merchantAccount | accountNum | Oui | string Max = 10 | Il s’agit du numéro de compte marchand. |
storeID | Oui | string Max = 20 | Il s’agit de l’identifiant du magasin Paysafe, utilisé pour authentifier la requête. Il est défini par Paysafe et fourni au marchand dans le cadre du processus d’intégration. | |
storePwd | Oui | string Max = 20 | Il s’agit du mot de passe du magasin Paysafe, utilisé pour authentifier la requête. Il est défini par Paysafe et fourni au marchand dans le cadre du processus d’intégration. | |
confirmationNumber | Oui | string Max = 15 | Il s’agit du numéro de confirmation renvoyé par Paysafe pour la requête initiale de règlement ou de crédit. | |
sdk | version | Conditional | string Max = 20 | Il s’agit de la version de la SDK utilisée, le cas échéant. Requis si l’élément sdk est fourni. |
platform | Conditional | string Max = 10 | Il s’agit du langage d’intégration de la SDK utilisée (p. ex. Java, .NET). Requis si l’élément sdk est fourni. | |
provider | Conditional | string Max = 20 | Il s’agit de l’auteur de la SDK utilisée. La valeur “op” est attribuée lorsque la SDK est fournie par Paysafe. Requis si l’élément sdk est fourni. | |
addendumData | tag | Facultatif | string Max = 30 | Il s’agit de données supplémentaires qui peuvent être jointes à la requête de transaction. |
value | Facultatif | string Max = 1024 | Il s’agit de données supplémentaires qui peuvent être jointes à la requête de transaction. | |
geoLocation | Facultatif | Il s’agit de l’emplacement géographique de la transaction mobile. | ||
latitude | Conditional | string Max = 24 | Il s’agit de la latitude de la transaction mobile (p. ex. 44,903889). | |
longitude | Conditional | string Max = 24 | Il s’agit de la longitude de la transaction mobile (p. ex. -77,255123). |
Créer des requêtes de paiement/crédit autonome
Les paiements et les crédits indépendants nécessitent l’objet document ccPaymentRequestV1. Cette section décrit la structure d’une ccPaymentRequestV1 et la façon d’en créer une.
Exemple de paiement – C#
Tous les éléments facultatifs qui prennent des types de données non annulables (p. ex. int ou enum) doivent avoir leur attribut spécifié défini sur « true » lors de la définition des valeurs pour ces éléments. Voir l’élément cardType dans l’exemple ci-dessous.
Voici un exemple de paiement en C#.
Pour en faire une requête de crédit autonome, il suffit de modifier la valeur “ccPayment” – dans la ligne “CCTxnResponseV1 ccTxnResponse = ccService.ccPayment(ccPaymentRequest);” ci-dessous – à “ccIndependentCredit”.
//Prepare the call to the Credit Card Web Service
CCPaymentRequestV1 ccPaymentRequest = new CCPaymentRequestV1();
MerchantAccountV1 merchantAccount = new MerchantAccountV1();
merchantAccount.accountNum = "12345678";
merchantAccount.storeID = "myStoreID";
merchantAccount.storePwd = "myStorePWD";
ccPaymentRequest.merchantAccount = merchantAccount;
ccPaymentRequest.merchantRefNum = "Ref-12345";
ccPaymentRequest.amount = "10.00";
CardV1 card = new CardV1();
card.cardNum = "4653111111111111";
CardExpiryV1 cardExpiry = new CardExpiryV1();
cardExpiry.month = 11;
cardExpiry.year = 2006;
card.cardExpiry = cardExpiry;
card.cardType = CardTypeV1.VI;
card.cardTypeSpecified = true;
card.cvdIndicator = 1;
card.cvdIndicatorSpecified = true;
card.cvd = "111";
ccPaymentRequest.card = card;
BillingDetailsV1 billingDetails = new BillingDetailsV1();
billingDetails.cardPayMethod = CardPayMethodV1.WEB; //WEB = Card Number Provided
billingDetails.cardPayMethodSpecified = true;
billingDetails.firstName = "Jane";
billingDetails.lastName = "Jones";
billingDetails.street = "123 Main Street";
billingDetails.city = "LA";
billingDetails.Item = (object)StateV1.CA; // California
billingDetails.country = CountryV1.US; // United States
billingDetails.countrySpecified = true;
billingDetails.zip = "90210";
billingDetails.phone = "555-555-5555";
billingDetails.email = "janejones@emailserver.com";
ccPaymentRequest.billingDetails = billingDetails;
// Perform the Web Services call for the payment request
CreditCardServiceV1 ccService = new CreditCardServiceV1();
CCTxnResponseV1 ccTxnResponse = ccService.ccPayment(ccPaymentRequest);
// Print out the result
String responseTxt ccTxnResponse.code + " - " + ccTxnResponse.decision + " - "
+ ccTxnResponse.description ;
responseTxt += "Details:" + Environment.NewLine;
if (ccTxnResponse.detail != null)
{
for (int i = 0; i < ccTxnResponse.detail.Length; i++)
{
responseTxt += " - " + ccTxnResponse.detail[i].tag + " - " +
ccTxnResponse.detail[i].value + Environment.NewLine;
}
}
responseTxt = responseTxt.Replace("\n", Environment.NewLine);
System.Console.WriteLine(responseTxt);
if (DecisionV1.ACCEPTED.Equals(ccTxnResponse.decision))
{
System.Console.WriteLine("Transaction Successful.");
}
else
{
System.Console.WriteLine("Transaction Failed with decision: " +
ccTxnResponse.decision);
}
}
catch (WebException we)
{
consoleTextBox.Text += we.Message.ToString();
consoleTextBox.Refresh();
}
Schéma ccPaymentRequestV1
Une ccPaymentRequestV1 a la structure suivante :
Éléments ccPaymentRequestV1
L’objet document ccPaymentRequestV peut contenir les éléments suivants :
Élément | Élément enfant | Requis | Type | Description |
---|---|---|---|---|
merchantAccount | accountNum | Oui | string Max = 10 | Il s’agit du numéro de compte marchand. |
storeID | Oui | string Max = 80 | Il s’agit de l’identifiant du magasin Paysafe, utilisé pour authentifier la requête. Il est défini par Paysafe et fourni au marchand dans le cadre du processus d’intégration. | |
storePwd | Oui | string Max = 20 | Il s’agit du mot de passe du magasin Paysafe, utilisé pour authentifier la requête. Il est défini par Paysafe et fourni au marchand dans le cadre du processus d’intégration. | |
merchantRefNum | Oui | string Max = 40 | Il s’agit d’un numéro d’identification unique associé à chaque requête. La valeur est créée par le marchand et soumise dans le cadre de la requête. | |
customerTokenId | Pour usage interne seulement | |||
montant | Oui | string | Il s’agit du montant de la requête de transaction. Le montant maximum est configuré pour chaque marchand. Il s’applique à chaque transaction et au plafond journalier par carte de crédit. Contactez votre gestionnaire de comptes pour de plus amples renseignements. | |
carte | cardNum | Oui | string Min = 8 Max = 20 | Il s’agit du numéro de carte utilisé pour la transaction. |
cardExpiry | Oui | L’élément enfant cardExpiry comporte deux autres éléments enfants – month et year. | ||
Élément enfant de cardExpiry | ||||
month | Oui | Int Max = 2 | Il s’agit du mois d’expiration de la carte. | |
year | Oui | Int Longueur = 4 | Il s’agit de l’année d’expiration de la carte. | |
cardType | Facultatif | enumeration | Il s’agit du type de carte utilisé pour la transaction. Les valeurs éventuelles sont : • AM – American Express • DC – Diners Club • DI – Discover • JC – JCB • MC – Mastercard • MD – Maestro • SO – Solo • VD – Visa Debit • VE – Visa Electron • VI – Visa | |
issueNum | Facultatif | nombre entier Max = 2 | Numéro à 1 ou 2 chiffres situé au recto de la carte, après le numéro de la carte. REMARQUE : L’élément issueNum peut être utilisé uniquement lorsque le cardType est MD (Maestro) ou SO (Solo). | |
cvdIndicator | Facultatif | nombre entier Longueur = 1 | Il s’agit de l’état de l’information sur la valeur du CVD. • 0 – Le client n’a pas fourni de valeur. • 1 – Le client a fourni une valeur. • 2 – La valeur est illisible. • 3 – La valeur ne figure pas sur la carte. REMARUQUE : Même si cet élément est facultatif, il est requis pour plusieurs vérifications liées au risque, et nous vous conseillons vivement de l’inclure afin d’éviter que des transactions échouent. | |
cvd | Conditional | string Longueur = 3 ou 4 | 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. Ce code n’apparaît pas sur les impressions. REMARQUE : L’élément cvd est obligatoire lorsque la valeur de l’élément cvdIndicator = 1. | |
billingDetails | cardPayMethod | Pour usage interne seulement | ||
firstName | Facultatif | string Max = 40 | Il s’agit du prénom du client. | |
lastName | Facultatif | string Max = 40 | Il s’agit du nom de famille du client. | |
street | Facultatif | string Max = 50 | Il s’agit de la première ligne de l’adresse du client. | |
street2 | Facultatif | string Max = 50 | Il s’agit de la deuxième ligne de l’adresse du client. | |
city | Facultatif | string Max = 40 | Il s’agit de la ville de résidence du client. | |
state/region | Facultatif | Si État, Si région, alors chaîne | Il s’agit de l’État, de la province ou de la région de résidence du client. Indiquez l’État/la province pour les États-Unis ou le Canada. Indiquez la région pour ailleurs qu’aux États-Unis ou au Canada. | |
country | Facultatif | enumeration | Il s’agit du pays de résidence du client. | |
zip | Obligatoire | string Max = 10 | Il s’agit du code ZIP du client s’il se trouve aux États-Unis; sinon, il s’agit du code postal du client. | |
phone | Facultatif | string Max = 40 | Il s’agit du numéro de téléphone du client. | |
adresse courriel | Facultatif | string Max = 100 | Il s’agit de l’adresse courriel du client. | |
sdk | version | Conditional | string Max = 20 | Il s’agit de la version de la SDK utilisée, le cas échéant. Requis si l’élément sdk est fourni. |
platform | Conditional | string Max = 10 | Il s’agit du langage d’intégration de la SDK utilisée (p. ex. Java, .NET). Requis si l’élément sdk est fourni. | |
provider | Conditional | string Max = 20 | Il s’agit de l’auteur de la SDK utilisée. La valeur “op” est attribuée lorsque la SDK est fournie par Paysafe. Requis si l’élément sdk est fourni. | |
authcode | Facultatif | string Max = 50 | Il s’agit du code d’autorisation attribué par la banque émettrice et renvoyé par Paysafe pour une transaction antérieure. REMARQUE : Incluez cet élément uniquement si vous en recevez l’instruction de la part de Paysafe. | |
previousConfirmationNumber | Facultatif | string Max = 20 | Il s’agit du numéro de confirmation d’une autorisation précédemment traitée. REMARQUE : Incluez cet élément uniquement si vous en recevez l’instruction de la part de Paysafe. | |
addendumData | tag | Facultatif | string Max = 30 | Il s’agit de données supplémentaires qui peuvent être jointes à la requête de transaction. |
value | Facultatif | string Max = 1024 | Il s’agit de données supplémentaires qui peuvent être jointes à la requête de transaction. |
Créer des requêtes de recherche de transaction
La requête de recherche de transaction par carte de crédit vous permet d’exécuter un rapport, sur une plage de dates que vous spécifiez, pour obtenir des données sur les transactions par carte de crédit traitées par l’intermédiaire de votre compte marchand. Par exemple, vous pouvez vouloir déterminer le résultat d’une transaction qui s’est interrompue, sans réponse, ou le résultat d’une transaction par lot qui a été refusée à une date ultérieure.
Vous pouvez rechercher les types de transaction suivants :
- Autorisation
- Achat
- Règlement
- Crédit
- Paiement/crédit autonome
Exemple de recherche de transaction – C#
Voici un exemple de ccTxnLookupRequest en C#.
// Prepare the call to the Credit Card Web Service
CCTxnLookupRequestV1 ccTxnLookupRequest = new CCTxnLookupRequestV1();
MerchantAccountV1 merchantAccount = new MerchantAccountV1();
merchantAccount.accountNum = "12345678";
merchantAccount.storeID = "myStoreID";
merchantAccount.storePwd = "myStorePWD";
ccTxnLookupRequest.merchantAccount = merchantAccount;
ccTxnLookupRequest.merchantRefNum = "123456789";
DateV1 startDate = new DateV1();
startDate.year = "2012";
startDate.month = "08";
startDate.day = "15";
startDate.hour = "11";
startDate.minute = "00";
startDate.second = "00";
ccTxnLookupRequest.startDate = startDate;
DateV1 endDate = new DateV1();
endDate.year = "2012";
endDate.month = "08";
endDate.day = "15";
endDate.hour = "14";
endDate.minute = "00";
endDate.second = "00";
ccTxnLookupRequest.endDate = endDate;
//Perform the Web Services call to process the request
CreditCardServiceV1 ccService = new CreditCardServiceV1();
CCTxnResponseV1 ccTxnResponse = ccService.ccTxnLookup(ccTxnLookupRequest);
// Print out the result
String responseTxt = ccTxnResponse.code + " - " + ccTxnResponse.decision;
responseTxt += "Transactions:" + Environment.NewLine;
if (ccTxnResponse.transaction != null)
{
for (int i = 0; i < ccTxnResponse.txnLookupResult.length; i++)
{
responseTxt += " - confirmationNumber: " +
ccTxnResponse.txnLookupResult[i].confirmationNumber + Environment.NewLine;
responseTxt += " - decison: " +
ccTxnResponse.txnLookupResult[i].decision + Environment.NewLine;
responseTxt += " - code: " +
ccTxnResponse.txnLookupResult[i].code + Environment.NewLine;
responseTxt += " - transaction type: " +
ccTxnResponse.txnLookupResult[i].tranType + Environment.NewLine;
responseTxt += " - transaction time: " +
ccTxnResponse.txnLookupResult[i].txnTime + Environment.NewLine;
responseTxt += " - merchantRefNum: " +
ccTxnResponse.txnLookupResult[i].merchantRefNum + Environment.NewLine;
responseTxt += " - card ending: " +
ccTxnResponse.txnLookupResult[i].cardEnding + Environment.NewLine;
responseTxt += " - card ending: " +
ccTxnResponse.txnLookupResult[i].cardEnding + Environment.NewLine;
CardExpiryV1 expiry = ccTxnResponse.txnLookupResult[i].cardExpiry;
responseTxt += " - card expiry: " +
expiry.month + "/" + expiry.year + Environment.NewLine;
responseTxt += Environment.NewLine + Environment.NewLine;
}
System.Console.WriteLine(responseTxt);
}
Schéma ccTxnLookupRequestV1
Une ccTxnLookupRequestV1 a la structure suivante :
Éléments ccTxnLookupRequestV1
L’objet document ccTxnLookupRequestV1 peut contenir les éléments suivants :
Élément | Élément enfant | Requis | Type | Description |
---|---|---|---|---|
merchantAccount | accountNum | Oui | string Max = 10 | Il s’agit du numéro de compte marchand. |
storeID | Oui | string Max = 20 | Il s’agit de l’identifiant du magasin Paysafe, utilisé pour authentifier la requête. Il est défini par Paysafe et fourni au marchand dans le cadre du processus d’intégration. | |
storePwd | Oui | string Max = 20 | Il s’agit du mot de passe du magasin Paysafe, utilisé pour authentifier la requête. Il est défini par Paysafe et fourni au marchand dans le cadre du processus d’intégration. | |
confirmationNumber | Facultatif | string Max = 15 | Il s’agit du numéro de confirmation renvoyé par Paysafe en réponse à la requête initiale. N’incluez cet élément que si vous souhaitez effectuer une recherche à l’aide de ce champ. Ce champ a priorité sur le champ merchantRefNum. REMARQUE: Si vous incluez cet élément, vous n’avez pas besoin de spécifier les éléments startDate ou endDate. | |
netbanxReference | Facultatif | string Max = 18 | Il s’agit d’un identifiant de transaction utilisé pour identifier certaines transactions antérieures. REMARQUE : Si vous incluez cet élément, vous devez spécifier les éléments startDate et endDate. | |
merchantRefNum | Facultatif | string Max = 255 | Il s’agit du numéro d’identification unique associé à la requête initiale. La valeur est créée par le marchand et soumise dans le cadre de la requête. REMARQUE : Si vous incluez cet élément, vous devez spécifier les éléments startDate et endDate. | |
startDate | year | Conditional | Int Max = 9999 | Il s’agit de l’année définie pour le début de la recherche. |
month | Conditional | Int Min = 1 Max = 12 | Il s’agit du mois défini pour le début de la recherche. | |
day | Conditional | Int Min = 1 Max = 31 | Il s’agit du jour défini pour le début de la recherche. | |
hour | Conditional | Int Min = 0 Max = 23 | Il s’agit de l’heure définie pour le début de la recherche. | |
minute | Conditional | Int Min = 0 Max = 59 | Il s’agit de la minute définie pour le début de la recherche. | |
second | Conditional | Int Min = 0 Max = 59 | Il s’agit de la seconde définie pour le début de la recherche. | |
endDate | year | Conditional | Int Max = 9999 | Il s’agit de l’année définie pour la fin de la recherche. |
month | Conditional | Int Min = 1 Max = 12 | Il s’agit du mois défini pour la fin de la recherche. | |
day | Conditional | Int Min = 1 Max = 31 | Il s’agit du jour défini pour la fin de la recherche. | |
hour | Conditional | Int Min = 0 Max = 23 | Il s’agit de l’heure définie pour la fin de la recherche. | |
minute | Conditional | Int Min = 0 Max = 59 | Il s’agit de la minute définie pour la fin de la recherche. | |
second | Conditional | Int Min = 0 Max = 59 | Il s’agit de la seconde définie pour la fin de la recherche. |
Créer des requêtes de recherche d’inscription
Utilisez la requête de recherche d’inscription pour déterminer si la carte de crédit d’un titulaire est inscrite au programme 3D Secure. Les requêtes de recherche d’inscription nécessitent l’objet document ccEnrollmentLookupRequestV1. Cette section décrit la structure d’une ccEnrollmentLookupRequestV1 et la façon d’en créer une.
Cette opération n’est prise en charge que pour 3D Secure 1.0.2.
Voir ici pour des informations sur l’utilisation de 3D Secure 2.
Exemple de recherche d’inscription – C#
Voici un exemple de recherche d’inscription en C#.
Tous les éléments facultatifs qui prennent des types de données non annulables (p. ex. int ou enum) doivent avoir leur attribut spécifié défini sur « true » lors de la définition des valeurs pour ces éléments. Voir l’élément cardType dans l’exemple ci-dessous.
//Prepare the call to the Credit Card Web Service
CCEnrollmentLookupRequestV1 enrollmentLookupRequest = new CCEnrollmentLookupRequestV1();
MerchantAccountV1 merchantAccount = new MerchantAccountV1();
merchantAccount.accountNum = "12345678";
merchantAccount.storeID = "myStoreID";
merchantAccount.storePwd = "myStorePWD";
enrollmentLookupRequest.merchantAccount = merchantAccount;
enrollmentLookupRequest.merchantRefNum = "Ref-12345";
enrollmentLookupRequest.amount = "97.97";
CardV1 card = new CardV1();
card.cardNum = "4653111111111111";
CardExpiryV1 cardExpiry = new CardExpiryV1();
cardExpiry.month = 11;
cardExpiry.year = 2013;
card.cardExpiry = cardExpiry;
card.cardType = CardTypeV1.VI;
card.cardTypeSpecified = true;
enrollmentLookupRequest.card = card;
// Perform the Web Services call for the TDS Enrollment Lookup
CreditCardServiceV1 ccService = new CreditCardServiceV1();
CCTxnResponseV1 ccTxnResponse = ccService.ccTDSLookup(enrollmentLookupRequest);
// Print out the result
String responseTxt = ccTxnResponse.confirmationNumber + " - " + ccTxnResponse.code + " - " + ccTxnResponse.decision + " - " + ccTxnResponse.description;
responseTxt += Environment.NewLine;
responseTxt += "Details:" + Environment.NewLine;
if (ccTxnResponse.detail != null)
{
for (int i = 0; i < ccTxnResponse.detail.Length; i++)
{
responseTxt += " - " + ccTxnResponse.detail[i].tag + " - " + ccTxnResponse.detail[i].value + Environment.NewLine;
}
}
responseTxt += "TDSResponse:" + Environment.NewLine;
if (ccTxnResponse.tdsResponse != null)
{
responseTxt += " - " + ccTxnResponse.tdsResponse.acsURL + Environment.NewLine;
responseTxt += " - " + ccTxnResponse.tdsResponse.paymentRequest + Environment.NewLine;
responseTxt += " - " + ccTxnResponse.tdsResponse.enrollmentStatus + Environment.NewLine;
responseTxt += " - " + ccTxnResponse.tdsResponse.eci + Environment.NewLine;
}
responseTxt = responseTxt.Replace("\n", Environment.NewLine);
System.Console.WriteLine(responseTxt);
consoleTextBox.Text = responseTxt;
if (DecisionV1.ACCEPTED.Equals(ccTxnResponse.decision))
{
System.Console.WriteLine("Transaction Successful.");
}
else
{
System.Console.WriteLine("Transaction Failed with decision: " + ccTxnResponse.decision);
}
Schéma ccEnrollmentLookupRequestV1
Une requête de recherche d’inscription ccEnrollmentLookupRequestV1 a la structure suivante :

Éléments ccEnrollmentLookupRequestV1
L’objet document ccEnrollmentLookupRequestV1 peut contenir les éléments suivants :
Élément | Élément enfant | Requis | Type | Description |
---|---|---|---|---|
merchantAccount | accountNum | Oui | string Max = 10 | Il s’agit du numéro de compte marchand. |
storeID | Oui | string Max = 20 | Il s’agit de l’identifiant du magasin Paysafe, utilisé pour authentifier la requête. Il est défini par Paysafe et fourni au marchand dans le cadre du processus d’intégration. | |
storePwd | Oui | string Max = 20 | Il s’agit du mot de passe du magasin Paysafe, utilisé pour authentifier la requête. Il est défini par Paysafe et fourni au marchand dans le cadre du processus d’intégration. | |
merchantRefNum | Oui | string Max = 255 | Il s’agit d’un numéro d’identification unique associé à chaque requête. La valeur est créée par le marchand et soumise dans le cadre de la requête. | |
montant | Oui | string Max= | Il s’agit du montant de la requête de transaction. REMARQUE: Bien que l’élément amount soit obligatoire pour l’opération de recherche d’inscription, aucun montant n’est en fait débité de la carte de crédit. | |
carte | cardNum | Oui | string Min = 8 Max = 20 | Il s’agit du numéro de carte utilisé pour la transaction. |
cardExpiry | Oui | L’élément enfant cardExpiry comporte deux autres éléments enfants – month et year. | ||
Élément enfant de cardExpiry | ||||
month | Oui | Int Max = 2 | Il s’agit du mois d’expiration de la carte. | |
year | Oui | Int Longueur = 4 | Il s’agit de l’année d’expiration de la carte. | |
cardType | Facultatif | enumeration | Il s’agit du type de carte utilisé pour la transaction. Les valeurs éventuelles sont : • JC – JCB • MC – Mastercard • VI – Visa | |
issueNum | Facultatif | nombre entier Max = 2 | Numéro à 1 ou 2 chiffres situé au recto de la carte, après le numéro de la carte. REMARQUE : L’élément issueNum n’est pas utilisé pour ce type de requête. | |
cvdIndicator | Facultatif | nombre entier Longueur = 1 | Il s’agit de l’état de l’information sur la valeur du CVD. • 0 – Le client n’a pas fourni de valeur. • 1 – Le client a fourni une valeur. • 2 – La valeur est illisible. • 3 – La valeur ne figure pas sur la carte. REMARQUE : L’élément cvdIndicator n’est pas utilisé pour ce type de requête. | |
cvd | Conditional | string Longueur = 3 ou 4 | 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. Ce code n’apparaît pas sur les impressions. REMARQUE : L’élément cvd n’est pas utilisé pour ce type de requête. |
Créer des requêtes d’authentification
Utilisez la requête d’authentification pour permettre à un titulaire de carte d’authentifier sa carte auprès de l’émetteur et pour récupérer les valeurs requises pour l’élément authentication d’une transaction ccAuthRequestV1. Les requêtes d’authentification nécessitent l’objet document ccAuthenticateRequestV1. Cette section décrit la structure d’une ccAuthenticateRequestV1 et la façon d’en créer une.
Cette opération n’est prise en charge que pour 3D Secure 1.0.2.
Voir ici pour des informations sur l’utilisation de 3D Secure 2.
Exemple d’authentification – C#
Voici un exemple d’authentification en C#.
//Prepare the call to the Credit Card Web Service
CCAuthenticateRequestV1 authenticateRequest = new CCAuthenticateRequestV1();
MerchantAccountV1 merchantAccount = new MerchantAccountV1();
merchantAccount.accountNum = "12345678";
merchantAccount.storeID = "myStoreID";
merchantAccount.storePwd = "myStorePWD";
authenticateRequest.merchantAccount = merchantAccount;
authenticateRequest.confirmationNumber = "myConfirmationNumber";
authenticateRequest.paymentResponse = "myPaymentResponse";
// Perform the Web Services call for the authentication
CreditCardServiceV1 ccService = new CreditCardServiceV1();
CCTxnResponseV1 ccTxnResponse = ccService.ccTDSAuthenticate(authenticateRequest);
// Print out the result
String responseTxt = ccTxnResponse.confirmationNumber + " - " +
ccTxnResponse.code + " - " + ccTxnResponse.decision + " - " +
ccTxnResponse.description;
responseTxt += Environment.NewLine;
responseTxt += "Details:" + Environment.NewLine;
if (ccTxnResponse.detail != null)
{
for (int i = 0; i < ccTxnResponse.detail.Length; i++)
{
responseTxt += " - " + ccTxnResponse.detail[i].tag + " - " +
ccTxnResponse.detail[i].value + Environment.NewLine;
}
}
responseTxt = responseTxt.Replace("\n", Environment.NewLine);
System.Console.WriteLine(responseTxt);
consoleTextBox.Text = responseTxt;
if (DecisionV1.ACCEPTED.Equals(ccTxnResponse.decision))
{
System.Console.WriteLine("Transaction Successful.");
}
else
{
System.Console.WriteLine("Transaction Failed with decision: " +
ccTxnResponse.decision);
}
Schéma ccAuthenticateRequestV1
Une ccAuthenticateRequestV1 a la structure suivante :
Éléments ccAuthenticateRequestV1
L’objet document ccAuthenticateRequestV1 peut contenir les éléments suivants :
Élément | Élément enfant | Requis | Type | Description |
---|---|---|---|---|
merchantAccount | accountNum | Oui | string Max = 10 | Il s’agit du numéro de compte marchand. |
storeID | Oui | string Max = 20 | Il s’agit de l’identifiant du magasin Paysafe, utilisé pour authentifier la requête. Il est défini par Paysafe et fourni au marchand dans le cadre du processus d’intégration. | |
storePwd | Oui | string Max = 20 | Il s’agit du mot de passe du magasin Paysafe, utilisé pour authentifier la requête. Il est défini par Paysafe et fourni au marchand dans le cadre du processus d’intégration. | |
confirmationNumber | Oui | string Max = 15 | Il s’agit du numéro de confirmation dans la ccTxnResponseV1 renvoyée par Paysafe en réponse à la ccEnrollmentLookupRequestV1. | |
paymentResponse | Oui | string | Il s’agit de la réponse d’authentification de paiement qui est renvoyée par la banque émettrice via le navigateur Web de votre client une fois que ce dernier a fourni ses informations d’authentification. Il s’agit d’une réponse codée générée par le logiciel ACS de l’émetteur. Sa signature numérique sera vérifiée par Paysafe pour s’assurer qu’elle a été générée par un émetteur légitime. | |
merchantRefNum | Facultatif | string Max = 255 | Il s’agit d’un numéro d’identification unique associé à chaque requête. La valeur est créée par le marchand et soumise dans le cadre de la requête. |
Les éléments suivants sont pertinents pour une ccTxnResponseV1 :
Élément | Élément enfant | Requis | Type | Description |
---|---|---|---|---|
confirmationNumber | Oui | string Max = 15 | Il s’agit du numéro de confirmation renvoyé par Paysafe. | |
merchantRefNum | Facultatif | string Max = 255 | Il s’agit d’un numéro d’identification unique créé par le marchand et soumis dans le cadre de la requête. | |
childAccountNum | Facultatif | string Max = 10 | Il s’agit du numéro de compte marchand enfant, qui n’est fourni que si la transaction a été traitée via un compte principal. | |
decision | Oui | enumeration | Il s’agit de l’état de la transaction. L’un des états suivants est renvoyé : • Accepted (Acceptée) – la transaction a été traitée. • Error (Erreur) – la transaction a été tentée, mais a échoué pour une raison quelconque. • Declined (Refusée) – la transaction a été refusée avant d’être envoyée pour traitement. • HELD – la transaction a été mise en attente pour des raisons de risque. | |
code | Oui | Int | Il s’agit d’un code numérique qui catégorise la réponse. | |
actionCode | Facultatif | enumeration | Indique l’action que l’appelant doit entreprendre. Les valeurs éventuelles sont : • C = Consumer Parameter Error (Erreur de paramètre consommateur) Le consommateur a fourni des informations incorrectes. Demandez au consommateur de corriger les informations. • D = Do Not Retry (Ne pas réessayer) Toute autre tentative échouera. • M = Merchant Parameter Error (Erreur de paramètre marchand) Votre application a fourni des informations incorrectes. Vérifiez vos informations. • R – Retry (Réessayer) Le problème est temporaire. La réitération de la requête sera probablement couronnée de succès. | |
description | Oui | string Max = 1024 | Il s’agit d’une description lisible par un humain de l’élément code. | |
authCode | Facultatif | string Max = 20 | Il s’agit du code d’autorisation attribué par la banque émettrice et renvoyé par Paysafe. | |
avsResponse | Facultatif | enumeration | Il s’agit de la réponse SVA de l’émetteur de la carte. Les valeurs éventuelles sont : • X – Exact. Le code postal à neuf chiffres et l’adresse concordent. • Y – Oui Le code postal à cinq chiffres et l’adresse concordent. • A – L’adresse concorde, mais pas le code postal. • W – Le code postal à neuf chiffres concorde, mais pas l’adresse. • Z – Le code postal à cinq chiffres concorde, mais pas l’adresse. • N – Aucune partie de l’adresse ne concorde. • U – Les informations relatives à l’adresse ne sont pas disponibles. • R – Retry (Réessayer) Le système est incapable de procéder au traitement. • S – SVA non pris en charge. • E – SVA non pris en charge pour ce secteur d’activité. • B – SVA non exécuté. • Q – Réponse inconnue de l’émetteur/du commutateur banknet. | |
cvdResponse | Facultatif | enumeration | Il s’agit de la réponse à la cvdValue soumise avec la requête de transaction. Les valeurs éventuelles sont : • M – Match (Correspondance) : la valeur CVD fournie correspond à la valeur CVD associée à la carte. • M – No Match (Aucune correspondance) : la valeur CVD fournie correspond à la valeur CVD associée à la carte. • P – Not Processed (Non traitée) : la valeur CVD n’a pas été traitée. • Q – Unknown Response (Réponse inconnue) : aucun résultat n’a été reçu concernant la valeur CVD. • S – Not Present (Absent) : le CVD doit figurer sur la carte. Cependant, le titulaire de la carte a indiqué qu’il n’était pas présent. • U – L’émetteur n’est pas certifié et/ou n’a pas fourni les clés de chiffrement Visa. | |
detail | tag | Facultatif | string Max = 30 | Il s’agit de la paire balise/valeur renvoyée dans l’élément detail. |
value | Facultatif | string Max = 1024 | ||
txnTime | Oui | dateTime | Il s’agit de la date et de l’heure auxquelles la transaction a été traitée par Paysafe. | |
duplicateFound | Oui | Booléen | Indique si cette transaction est une transaction en double, si un chèque en double a été demandé. | |
duplicateTransactionResponse | Facultatif | CCTxnResponseV1 | Si un enregistrement en double a été trouvé, cet élément contient les détails de cet enregistrement. | |
tdsResponse Cet élément et ses éléments enfants ne sont renvoyés qu’en réponse à la requête de transaction ccEnrollmentLookupRequestV1. | acsURL | Facultatif | string Max = 255 | Il s’agit d’une URL entièrement qualifiée qui redirige le consommateur vers la transaction de requête d’authentification de paiement. |
paymentRequest | Facultatif | string | Il s’agit d’une requête d’authentification de paiement encodée générée par le système de traitement de l’authentification du marchand (MAPS). | |
enrollmentStatus | Oui | enumeration | Indique si le titulaire de la carte est inscrit ou non à 3D Secure. Les valeurs éventuelles sont : • Y – Authentification possible • N – Titulaire de la carte non inscrit • U – Authentification non disponible • E – Erreur | |
eci | Facultatif | enumeration | Visa/JCB 05 – Identifie une transaction authentifiée avec succès. 06 – Identifie une tentative de transaction authentifiée. 07 – Identifie une transaction non authentifiée. Mastercard • 01 – Identifie une transaction non authentifiée. 02 – Identifie une transaction authentifiée avec succès. Si le titulaire de la carte n’est pas inscrit à 3D Secure, vous pouvez utiliser cette valeur d’indicateur de commerce électronique pour l’élément enfant indicator de l’élément authentication dans votre requête ccAuthRequestV1 d’autorisation ou d’achat. Toutefois, si le titulaire de la carte est inscrit à 3D Secure, utilisez la valeur eci dans l’élément tdsAuthenticateResponse ci-dessous. | |
tdsAuthenticateResponse Cet élément et ses éléments enfants ne sont renvoyés qu’en réponse à la requête de transaction ccAuthenticateRequestV1. | status | Oui | enumeration | Indique le résultat de la requête d’authentification. • Y – Le titulaire de la carte s’est authentifié avec succès auprès de l’émetteur de la carte. • A – L’authentification du titulaire de la carte a été tentée. • N – Le titulaire de la carte ne s’est pas authentifié auprès de l’émetteur de sa carte. • U – L’authentification auprès de l’émetteur de la carte n’était pas disponible. • E – Erreur |
cavv | Facultatif | string Max = 80 | Il s’agit de la valeur de vérification de l’authentification du titulaire de la carte renvoyée par l’émetteur de la carte. Utilisez cette valeur pour l’élément enfant indicator de l’élément authentication dans une ccAuthRequestV1. | |
signature | Oui | enumeration | Indique si l’élément paymentResponse qui a été soumis avec la requête d’authentification a passé les vérifications d’intégrité. Y – Toutes les vérifications de transaction et de signature sont satisfaites. N – Au moins une vérification de transaction ou de signature a échoué. | |
xid | Facultatif | string Max = 80 | Il s’agit de l’identifiant de transaction renvoyé en réponse à une requête d’authentification ccAuthenticateRequestV1. | |
eci | Facultatif | enumeration | Utilisez cette valeur d’indicateur de commerce électronique pour l’élément enfant indicator de l’élément authentication dans votre requête ccAuthRequestV1 d’autorisation ou d’achat. Visa/JCB 05 – Identifie une transaction authentifiée avec succès. 06 – Identifie une tentative de transaction authentifiée. 07 – Identifie une transaction non authentifiée. Mastercard • 01 – Identifie une transaction non authentifiée. 02 – Identifie une transaction authentifiée avec succès. | |
lbCascading | Facultatif | Cet élément fournit des informations sur les transactions qui ont été retentées en raison de l’équilibrage de la charge. | ||
retryCount | Conditional | Int | Il s’agit du nombre de fois que Paysafe a retenté la transaction. | |
originalCode | Conditional | Int | Le code de réponse initial renvoyé par le système qui a amené Paysafe à réessayer la transaction. | |
addendumResponse | Facultatif | Cet élément permet à Paysafe de renvoyer au marchand certaines valeurs de réponse spécifiques à la passerelle. | ||
service | Conditional | string Max = 50 | Il s’agit du prestataire de services qui fournit les valeurs pour la paire balise/valeur. | |
detail | Conditional | Il peut y avoir plusieurs éléments detail si nécessaire. | ||
Élément enfant de detail | ||||
tag | Conditional | string Max = 30 | Il s’agit de la paire balise/valeur renvoyée dans la addendumResponse. | |
value | Conditional | string Max = 30 | ||
montant | Facultatif | string Max= | Il s’agit du montant de la requête de transaction. | |
tranType REMARQUE : L’élément tranType est renvoyé uniquement dans la réponse à une ccTxnLookupRequestV1. | Facultatif | enumeration | Il s’agit du type de transaction qui a été recherché. Les valeurs éventuelles sont les suivantes : • A – Authorization (Autorisation) • S – Settlement (Règlement) • P – Purchase (Achat) • CR – Credit (Crédit) • PY – Payment (Paiement) • N – Independant Credit (Crédit autonome) | |
cardEnding REMARQUE : L’élément cardEnding est renvoyé uniquement dans la réponse à une ccTxnLookupRequestV1. | Facultatif | string Max = 4 | Il s’agit des quatre derniers chiffres de la carte associée à cette transaction. | |
cardExpiry REMARQUE : L’élément cardExpiry est renvoyé uniquement dans la réponse à une ccTxnLookupRequestV1. | Facultatif | |||
month | Conditional | Int Max = 2 | Il s’agit du mois d’expiration de la carte. | |
year | Conditional | Int Longueur = 4 | Il s’agit de l’année d’expiration de la carte. | |
netbanxReference REMARQUE : L’élément netbanxReference est renvoyé uniquement dans la réponse à une ccTxnLookupRequestV1. | Facultatif | string Max = 18 | Il s’agit d’un identifiant de transaction qui permet d’identifier certaines transactions antérieures. | |
txnLookupResult REMARQUE : L’élément txnLookupResult est renvoyé uniquement dans la réponse à une ccTxnLookupRequestV1. | Conditional | Cet élément contient tous les éléments contenus dans la ccTxnResponseV1 standard qui auraient été renvoyés pour la requête initiale, en plus des éléments de ce tableau qui sont identifiés comme étant renvoyés uniquement en réponse à une ccTxnLookupRequestV1 (p. ex. tranType). | ||
profile | Id | Facultatif | string Max = 50 | Il s’agit d’un identifiant interne renvoyé dans la réponse à la requête de profil, utilisé pour identifier un client. |
carte | Conditional | |||
Élément enfant de card | ||||
Id | Conditional | string Max = 50 | Il s’agit de l’identifiant de la carte renvoyé par Paysafe pour identifier la carte de profil. | |
lastFourDigits | Conditional | nombre entier | Il s’agit des quatre derniers chiffres du numéro de carte associé au profil. | |
paymentToken | Conditional | string Max = 50 | Il s’agit d’un jeton généré par Paysafe qui représente la carte. |
Pour traiter une réponse :
-
Obtenez les données de la réponse, qui sont disponibles via les méthodes get() de la réponse.
String responseTxt = ccTxnResponse.code + " - " + ccTxnResponse.decision +
" - " + ccTxnResponse.description ;
responseTxt += "Details:" + Environment.NewLine;
if (ccTxnResponse.detail != null)
{
for (int i = 0; i < ccTxnResponse.detail.Length; i++)
{
responseTxt += " - " + ccTxnResponse.detail[i].tag + " - " +
ccTxnResponse.detail[i].value + Environment.NewLine;
}
}
responseTxt = responseTxt.Replace("\n", Environment.NewLine);
System.Console.WriteLine(responseTxt);
if (DecisionV1.ACCEPTED.Equals(ccTxnResponse.decision))
{
System.Console.WriteLine("Transaction Successful.");
}
else
{
System.Console.WriteLine("Transaction Failed with decision: " +
ccTxnResponse.decision);
} -
Traitez en fonction de l’élément decision. Vous devez insérer le code de gestion approprié à votre application. Vous pouvez également consulter l’élément code pour obtenir un contrôle plus fin de votre application.
Détail des paires balise/valeur
Toutes les passerelles de traitement ne prennent pas en charge toutes les paires balise/valeur. Contactez votre gestionnaire de compte pour de plus amples renseignements.
Le tableau suivant contient les paires balise/valeur prises en charge pour l’élément data.
Tag | Valeur |
---|---|
CurrencyCode | Cette valeur est renvoyée si l’élément de balise addendumData de la transaction initiale a été défini sur SERVICE_REQUEST_CURRENCY. |
BalanceResponse | Cette valeur correspond au solde restant sur une carte-cadeau, si une carte-cadeau a été utilisée pour la transaction initiale. Notez que la décimale est implicite pour la devise, donc, par exemple, |
Paires balise/valeur pour addendumResponse
Toutes les passerelles de traitement ne prennent pas en charge toutes les paires de balise/valeur addendumResponse. Contactez votre gestionnaire de compte pour de plus amples renseignements.
Le tableau suivant contient les paires balise/valeur prises en charge pour l’élément addendumResponse.
Tag | Service | Valeur |
---|---|---|
BATCH_NUMBER | DJN | Il s’agit de votre numéro de lot. |
EFFECTIVE_DATE | DJN | Il s’agit de la date du dépôt bancaire associé à la transaction. |
SEQ_NUMBER | DJN | Il s’agit de votre numéro de séquence. |
TERMINAL_ID | DJN | Il s’agit de l’identifiant de votre terminal. |
Codes de devise
Code | Devise |
---|---|
ARS | Peso argentin |
AUD | Dollar australien |
BGN | Lev bulgare |
BRL | Real brésilien |
CAD | Dollar canadien |
CHF | Franc suisse |
CZK | Couronne tchèque |
DKK | Couronne danoise |
EUR | Euro |
GBP | Livre sterling |
HKD | Dollar de Hong Kong |
HUF | Forint |
ILS | Nouveau shekel d’Israël |
ISK | Couronne islandaise |
JPY | Yen |
MXN | Peso mexicain |
NOK | Couronne norvégienne |
NZD | Dollar néo-zélandais |
PLN | Zloty |
RON | Nouveau Leu |
SEK | Couronne suédoise |
SGD | Dollar de Singapour |
THB | Baht |
TWD | Nouveau dollar taïwanais |
USD | Dollar américain |
ZAR | Rand |
Cette page a-t-elle été utile ?
- Exemple .NET
- Créer des requêtes d’achat/autorisation/vérification.
- Créer des requêtes d’annulation d’autorisation
- Créer des requêtes de règlement/crédit
- Créer des requêtes de données stockées
- Créer des requêtes d’annulation de transaction
- Créer des requêtes de paiement/crédit autonome
- Créer des requêtes de recherche de transaction
- Créer des requêtes de recherche d’inscription
- Créer des requêtes d’authentification
- Traitement de la réponse