Search Overlay

Transactions par prélèvement automatique

Cette page décrit comment traiter les transactions par prélèvement automatique via le service Web de Paysafe. Les opérations suivantes sont prises en charge :

OpérationDescriptionPourType de requête

Débit

Permet de transférer de l’argent du compte bancaire d’un client vers votre compte marchand. Cette transaction est effectuée en temps réel, mais le réseau bancaire prend 2 à 5 jours pour transférer les fonds, en fonction du système bancaire.

TEF
(CCA) ACH
BACS
SEPA

Voir Construire des requêtes de débit ou de crédit.

Crédit

Vous permet de transférer de l’argent de votre compte marchand directement sur le compte bancaire d’un client. Cette transaction est effectuée en temps réel, mais le réseau bancaire prend 2 à 5 jours pour transférer les fonds, en fonction du système bancaire.

TEF
(CCA) ACH
BACS
SEPA

Voir Construire des requêtes de débit ou de crédit.

Mettre à jour les renseignements d’expédition

Permet d’envoyer des renseignements sur l’expédition, y compris un numéro de suivi, une fois que vous avez expédié des marchandises pour lesquelles vous avez précédemment traité une transaction de type « débit ».

TEF
(CCA) ACH
BACS

Voir Créer des requêtes updateShippingInfo.

Recherche d’informations

Vous permet d’exécuter un rapport par l’intermédiaire de l’API sur une plage de dates que vous spécifiez pour obtenir des données sur les transactions de prélèvement automatique et de crédit traitées par l’intermédiaire de votre compte marchand.

TEF
(CCA) ACH
BACS
SEPA

Voir Créer des requêtes de recherche.

Requête de mandat

Permet de créer un mandat pour le compte bancaire d’un client et de le déposer auprès de sa banque, ce qui vous permet de transférer de l’argent du compte bancaire du client vers votre compte marchand. Le réseau bancaire prend généralement 5 jours pour traiter le mandat.

BACS
SEPA

Voir Créer des requêtes de mandat BACS (Royaume-Uni).

Modifier un état

Permet de modifier l’état d’une opération de débit, de crédit ou de mandat.

TEF
(CCA) ACH
BACS
SEPA

Voir Créer des requêtes de modification d’état.

Mettre à jour un mandat

Permet de mettre à jour les informations contenues dans un mandat existant.

SEPA

Voir Créer des requêtes de mise à jour de mandat.

La disponibilité des types d’opérations de prélèvement automatique 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 de débit et de crédit acceptent un objet de document ddCheckRequestV1.
  • L’opération updateShippingInfo accepte un objet de document ddShippingRequestV1.
  • L’opération de recherche accepte un objet de document ddLookupRequestV1.
  • L’opération de requête de mandat accepte un objet de document ddMandateRequest.
  • L’opération de modification d’état accepte un objet de document ddChangeStatusRequest.
  • L’opération de mise à jour du mandat accepte un objet de document ddUpdateMandateRequest.
  • Toutes les opérations renvoient une réponse ddCheckResponseV1.

Exemple .NET

Pour créer l’exemple .NET :

  1. Créez un nouveau projet.

  2. Ajoutez une référence Web.

  3.  Saisissez l’URL du WSDL et cliquez sur le bouton Ajouter une référence.

  4. Le client Web est maintenant créé.

Créer des requêtes de débit ou de crédit

Les requêtes de débit et de crédit nécessitent l’objet de document ddCheckRequestV1. Cette section décrit la structure d’une ddCheckRequestV1 et comment en créer une. Voir Éléments ddCheckRequestV1 pour connaître les éléments requis.

exemple de débit – C#

Voici un exemple de débit en C#.

Pour en faire une requête de crédit, modifiez la valeur “charge” – dans la ligne “DDCheckResponseV1 ddTxnResponse = ddService.charge(ddCheckRequest)” ci-dessous – en “credit”.

// Prepare the call to the Direct Debit Web Service

DDCheckRequestV1 ddCheckRequest = new DDCheckRequestV1();

ddCheckRequest.amount = "10.00";

MerchantAccountV1 merchantAccount = new MerchantAccountV1();

merchantAccount.accountNum = "12345678";

merchantAccount.storeID = "myStoreID";

merchantAccount.storePwd = "myStorePWD";

ddCheckRequest.merchantAccount = merchantAccount;

CheckV1 check = new CheckV1();

check.routingNum = "123456789";

check.accountNum = "987654321";

check.accountType = BankAccountTypeV1.PC;

check.bankName = "Chase";

check.checkNum = 12;

check.payee = "ACME Inc.";

ddCheckRequest.check = check;

BillingDetailsV1 billingDetails = new BillingDetailsV1();

billingDetails.firstName = "Jane";

billingDetails.lastName = "Jones";

billingDetails.street = "123 Main Street";

billingDetails.city = "LA";

billingDetails.country = CountryV1.US;

billingDetails.zip = "90210";

billingDetails.phone = "555-555-5555";

billingDetails.checkPayMethod = CheckPayMethodV1.WEB;

ddCheckRequest.billingDetails = billingDetails;

//Perform the Web Services call to process the request

DirectDebitServiceV1 ddService = new DirectDebitServiceV1();

DDCheckResponseV1 ddTxnResponse = ddService.charge(ddCheckRequest);



// Print out the result

String responseTxt = ddTxnResponse.code + " - " + ddTxnResponse.decision +
" - " + ddTxnResponse.description;

responseTxt += "Details:" + Environment.NewLine;

if (ddTxnResponse.detail != null)if (ddTxnResponse.detail != null)

{

for (int i = 0; i < ddTxnResponse.detail.Length; i++)

{

responseTxt += " - " + ddTxnResponse.detail[i].tag + " - " +

ddTxnResponse.detail[i].value + Environment.NewLine;

}

}

responseTxt = responseTxt.Replace("\n", Environment.NewLine);

System.Console.WriteLine(responseTxt);

if (DecisionV1.ACCEPTED.Equals(ddTxnResponse.decision))

{

System.Console.WriteLine("Transaction Successful.");

}

else

{

System.Console.WriteLine("Transaction Failed with decision: " +
ddTxnResponse.decision);

}

schéma ddCheckRequestV1

Un objet de document ddCheckRequestV1 a la structure suivante :

Éléments ddCheckRequestV1

Cette requête est utilisée pour les transactions de prélèvement automatique dans le cadre de divers programmes. Voir ci-dessous les exigences supplémentaires relatives aux éléments de prélèvement automatique pour les variations de certains éléments requis.

L’objet de document ddCheckRequestV1 peut contenir les éléments suivants :

ÉlémentÉlément enfantRequisTypeDescription

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

 

Conditional

string

Max = 40

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 initiale. Elle n’est renvoyée qu’en réponse à une requête de recherche.

montant

 

Oui

string

Max =
9999999.99

Il s’agit du montant de la requête de transaction.

REMARQUE : Ce champ nécessite un premier chiffre non nul et deux chiffres après la décimale. Une exception est faite dans les cas où un zéro initial est seul (p. ex. 0,99).

check

accountType

Facultatif

enumeration

Il s’agit du type de compte de chèques utilisé pour la transaction. Les valeurs éventuelles sont :

•    PC - Personal Checking (compte de chèques personnel)

•    PS - Personal Savings (compte d’épargne personnel)

•    PL - Personal Loan (prêt personnel)

•    BC - Business Checking (compte de chèques commercial)

•    BS - Business Savings (compte d’épargne commercial)

•    BL - Business Loan (prêt à l’entreprise)

REMARQUE : Si cet élément n’est pas spécifié, la valeur par défaut est PC.

 

bankName

Facultatif

string

Max = 40

Il s’agit du nom de la banque du client auprès de laquelle cette opération est comptabilisée.

 

checkNum

Oui

Long

Max = 8

Il s’agit du numéro de série du chèque, fourni au moment de la requête de transaction.

 

accountNum

Oui

string

Max = 17

Si IBAN,
Max = 32

Il s’agit du numéro de compte bancaire du client.

Pour les transactions SEPA, il s’agit de l’IBAN (International Bank Account Number) du compte bancaire du client.

REMARQUE : Il ne peut pas être égal à zéro (0) et ne peut contenir que des caractères alphanumériques.

 

routingNum

Oui

string

Min = 6

Max = 9

Si BIC,

Min = 8

Max = 11

Pour les comptes en USD, il s’agit du numéro d’acheminement à 9 chiffres de la banque du client.

Pour les comptes en livres sterling, il s’agit du code de tri à 6 chiffres de la banque du client.

Pour les comptes en dollars canadiens, il s’agit d’une combinaison de l’identifiant de l’institution à 3 chiffres suivi du numéro de transit à 5 chiffres de la succursale bancaire du client. Ils doivent être saisis dans cet ordre. Ne pas inclure d’espaces ni de tirets.

Pour les transactions SEPA, il s’agit du BIC (Bank Identifier Code) du compte bancaire du client. Si vous n’avez pas le BIC, vous pouvez soumettre la valeur suivante, sensible à la casse : EMPTYBIC

REMARQUE : Il ne peut pas être égal à zéro (0) et ne peut contenir que des caractères alphanumériques.

 

payee

Conditional

string

Max = 81

Il s’agit du descripteur qui apparaîtra sur le compte bancaire du client. Il n’est requis que pour les transactions de crédit.

Si vous indiquez une valeur pour ce champ, cette valeur sera utilisée comme descripteur de l’énoncé. Si vous ne fournissez pas de valeur pour ce champ, la valeur par défaut configurée pour le compte marchand sera utilisée.

 

bankCountry

Conditional

enumeration

Il s’agit du pays dans lequel la banque est située. Voir Codes de pays pour les bons codes à utiliser. Cet élément n’est obligatoire que pour certains pays.

 

bankCity

Conditional

string

Max = 40

Il s’agit de la ville dans laquelle la banque est située. Cet élément n’est obligatoire que pour certains pays.

 

mandateReference

Conditional

string

Max = 10

Pour SEPA,

Max = 35

Pour BACS,

Max = 10

Il s’agit de la référence du mandat qui permet de débiter le compte. Il s’agit de la valeur attribuée au paramètre mandateReference dans la réponse à ddMandateRequestV1.

REMARQUE : Cet élément est obligatoire pour les débits BACS et SEPA uniquement.

billingDetails

checkPayMethod

Facultatif

enumeration

Il s’agit du type de paiement.
Les valeurs éventuelles sont :

•    WEB (compte de chèques personnel seulement)

•    TEL (compte de chèques personnel seulement)

•    PPD (compte de chèques personnel seulement)

•    CCD (compte de chèques commercial seulement)

REMARQUE : Si cet élément n’est pas spécifié, la valeur par défaut est WEB. Il ne peut pas être défini sur WEB ou TEL pour les requêtes de crédit.

 

firstName

Conditional

string

Max = 40

Il s’agit du prénom du client.

Requis si checkPayMethod est défini sur WEB ou TEL.

 

lastName

Conditional

string

Max = 40

Il s’agit du nom de famille du client.

Requis si accountType est défini sur PC, PS ou PL.

 

companyName

Conditional

string

Max = 50

Il s’agit du nom de l’entreprise.

Requis si accountType est défini sur BC, BS ou BL.

 

street

Oui

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

Oui

string

Max = 40

Il s’agit de la ville de résidence du client.

 

state/region

Conditional

Si État, alors énumération

Si région, alors chaîne
Max = 40

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.

Voir Codes pour les bons codes à utiliser.

 

country

Oui

enumeration

Il s’agit du pays de résidence du client. Voir Codes de pays pour les bons codes à utiliser.

 

zip

Facultatif

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.

personalID

idNumber

Facultatif

string

Max = 20

Il s’agit du numéro de l’identifiant fourni pour l’élément idType.

 

idType

Facultatif

enumeration

Il s’agit du type d’identifiant utilisé pour identifier le titulaire du compte bancaire.
Les valeurs éventuelles sont :

•    DL - Driver’s Licence (permis de conduire)

•    SS - Government ID (pièce d’identité émise par le gouvernement)

•    MI - Military ID (pièce d’identité militaire)

•    GN - Generic ID (pièce d’identité générique)

 

state/region

Facultatif

Si État, alors énumération

Si région, alors chaîne
Max = 40

Il s’agit de l’État, de la province ou de la région où la pièce d’identité a été délivrée.

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.

Voir Codes pour les bons codes à utiliser.

 

country

Facultatif

string

Longueur = 2

Il s’agit du pays dans lequel la pièce d’identité a été délivrée. Les valeurs éventuelles sont :

•    CA (Canada)

•    US (États-Unis)

 

expiry

Facultatif

 

L’élément enfant expiry a trois autres éléments enfants.

  

Élément enfant du paramètre expiry

 
 

day

Facultatif

Int

Longueur = 2

Il s’agit de la date d’expiration de la pièce d’identité.

 

month

Facultatif

Int

Longueur = 2

Il s’agit du mois d’expiration de la pièce d’identité.

 

year

Conditional

Int

Longueur = 4

Il s’agit de l’année d’expiration de la pièce d’identité.

Cet élément est requis si l’élément expiry est inclus.

socialSecurityNumber

 

Facultatif

string

Max = 12

Il s’agit du numéro d’assurance sociale du client.

dateOfBirth

 

Facultatif

 

Il s’agit de la date de naissance du client.

 

year

Conditional

string

Max = 4

1900–9999

Il s’agit de l’année de naissance du client.

 

month

Conditional

string

Max = 12

Il s’agit du mois de naissance du client.

 

day

Conditional

string

Max = 31

Il s’agit du jour de naissance du client.

shippingDetails

carrier

Facultatif

enumeration

Il s’agit du transporteur.
Les valeurs éventuelles sont :

•    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

 

trackingNumber

Facultatif

string

Max = 50

Il s’agit du numéro de suivi de l’expédition fourni par le transporteur.

 

shipMethod

Facultatif

enumeration

Il s’agit du mode d’expédition.
Les valeurs éventuelles sont :

•    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,
enumeration

Si région, alors chaîne
Max = 40

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.

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.
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/monnaie numérique)

•    S - Shareware (Partagiciel)

•    M - Both Digital and Physical (Numérique et Matériel)

•    R - Account Replenish (Réapprovisionnement de compte)

txnAppliedTo

 

No

 

Cet élément ne s’applique pas aux transactions par prélèvement automatique.

confirmationNumber

 

Conditional

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 utilisez ddCheckRequestV1 pour traiter une requête de crédit.

targetVirtualAccount

 

No

 

Cet élément ne s’applique pas aux transactions par prélèvement automatique.

checkRiskService

 

No

 

Cet élément ne s’applique pas aux transactions par prélèvement automatique.

txnDate

 

Facultatif

dateTime

Il s’agit de la date et de l’heure auxquelles la transaction a eu lieu.

Pour un débit ou un crédit, ou pour ddMandateRequestV1, il peut s’agir de la date et de l’heure futures auxquelles la transaction aura lieu.

Pour le SEPA, il s’agit de la future date de prélèvement. Le délai doit être d’au moins deux jours ouvrables pour toutes les requêtes de transactions SEPA.

REMARQUE : La date de prélèvement qui en résulte sera renvoyée dans la paire balise/valeur de l’élément detail dans la réponse.

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.

origin

 

Facultatif

enumeration

Il s’agit de l’origine de la requête.
Les valeurs éventuelles sont :

•    Sans fil

•    Ligne filaire

addendumData

tag

Facultatif

string

Max = 30

Il s’agit de données supplémentaires que le marchand peut inclure dans la requête de transaction.

 

value

Facultatif

string

Max = 1024

Il s’agit de données supplémentaires que le marchand peut inclure dans la requête de transaction.

Considérations particulières pour les éléments de prélèvement automatique

Certains marchands sont intégrés à des processeurs en aval qui ont des exigences différentes en ce qui concerne les éléments obligatoires du prélèvement automatique. Dans ce cas, la règle suivante s’applique.

Exigences supplémentaires relatives aux éléments de prélèvement automatique

ÉlémentTransactions ordinairesTransactions garantiesTransactions SEPA

check.accountType

Facultatif

Requis

Facultatif

check.bankName

Facultatif

Requis

Facultatif

check.checkNum

Requis

Requis

Facultatif

check.payee

Facultatif

Facultatif

Requis

check.bankCountry

Conditional

Conditional

Facultatif

check.bankCity

Conditional

Conditional

Facultatif

check.mandateReference

Conditional

Conditional

Requis pour les débits seulement.

billingDetails.firstName

Conditional

Requis

Requis

billingDetails.lastName

Conditional

Requis

Requis

billingDetails.companyName

Conditional

Conditional

Facultatif

billingDetails.state

Conditional

Requis

Facultatif

billingDetails.zip

Facultatif

Requis

Requis

billingDetails.phone

Facultatif

Requis

Facultatif

billingDetails.email

Facultatif

Requis

Requis

customerIp

Facultatif

Requis

Facultatif

dateOfBirth.year

Facultatif

Requis

Facultatif

dateOfBirth.month

Facultatif

Requis

Facultatif

dateOfBirth.day

Facultatif

Requis

Facultatif

personalID.idNumber

Facultatif

Requis

Facultatif

personalID.state

Facultatif

Requis

Facultatif

socialSecurityNumber

Facultatif

Requis

Facultatif

Votre gestionnaire de compte vous informera :

  1. Si vous êtes intégré à ce type de processeur en aval et
  2. Si vous pouvez bénéficier d’un traitement garanti de prélèvement automatique.

Créer des requêtes updateShippingInfo

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é à « true » lors de la définition des valeurs pour ces éléments. Voir l’élément shipMethod dans l’exemple ci-dessous.

La requête updateShippingInfo nécessite l’objet de document ddShippingRequestV1. Cette section décrit la structure d’une ddShippingRequestV1 et comment en créer une.

Exemple dé updateShippingInfo – C#

Voici un exemple de updateShippingInfo en C#.

// Prepare the call to the Direct Debit Web Service

DDShippingRequestV1 ddShippingRequest = new DDShippingRequestV1();

MerchantAccountV1 merchantAccount = new MerchantAccountV1();

merchantAccount.accountNum = "12345678";

merchantAccount.storeID = "myStoreID";

merchantAccount.storePwd = "myStorePwd";

ddShippingRequest.merchantAccount = merchantAccount;

ddShippingRequest.confirmationNumber = "123456"; // A valid confirmation number from a previous settle auth or purchase

ddShippingRequest.carrier = CarrierV1.FEX; // Fedex

ddShippingRequest.shipMethod = ShipMethodV1.T;

ddShippingRequest.shipMethodSpecified = true;

ddShippingRequest.trackingNumber = "555666888999";

ddShippingRequest.firstName = "Jane";

ddShippingRequest.lastName = "Jones";

ddShippingRequest.street = "123 Main Street";

ddShippingRequest.city = "LA";

ddShippingRequest.country = CountryV1.US;

ddShippingRequest.countrySpecified = true;

ddShippingRequest.zip = "90210";

ddShippingRequest.email = "janejones@emailserver.com"; // optional email address



//Perform the Web Services call to update the shipping info

DirectDebitServiceV1 ddService = new DirectDebitServiceV1();

DDCheckResponseV1 ddTxnResponse =

ddService.updateShippingInfo(ddShippingRequest);

// Print out the result

String responseTxt = ddTxnResponse.code + " - " + ddTxnResponse.decision + " - " +
ddTxnResponse.description;

responseTxt += "Details:" + Environment.NewLine;

if (ddTxnResponse.detail != null)if (ddTxnResponse.detail != null)

{

for (int i = 0; i < ddTxnResponse.detail.Length; i++)

{

responseTxt += " - " + ddTxnResponse.detail[i].tag + " - " +

ddTxnResponse.detail[i].value + Environment.NewLine;

}

}

responseTxt = responseTxt.Replace("\n", Environment.NewLine);

System.Console.WriteLine(responseTxt);

if (DecisionV1.ACCEPTED.Equals(ddTxnResponse.decision))

{

System.Console.WriteLine("Transaction Successful.");

}

else

{

System.Console.WriteLine("Transaction Failed with decision: " +
ddTxnResponse.decision);

}

Schéma ddShippingRequestV1

Un objet de document ddShippingRequestV1 a la structure suivante :

Éléments ddShippingRequestV1

L’objet de document ddShippingRequestV1 peut contenir les éléments suivants :

ÉlémentÉlément enfantRequisTypeDescription

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.

carrier

 

Oui

enumeration

Il s’agit du transporteur.
Les valeurs éventuelles sont :

•    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

trackingNumber

 

Oui

string

Max = 50

Il s’agit du numéro de suivi de l’expédition fourni par le transporteur.

confirmationNumber

 

Oui

string

Max = 15

Il s’agit du numéro de confirmation renvoyé par Paysafe.

shipMethod

 

Facultatif

enumeration

Il s’agit du mode d’expédition.
Les valeurs éventuelles sont :

•    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 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, alors énumération

Si région, alors chaîne
Max = 40

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

 

Facultatif

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.

Créer des requêtes de recherche

La requête de recherche de prélèvement automatique vous permet d’exécuter un rapport, sur une plage de dates que vous spécifiez, afin d’obtenir des données sur les transactions de prélèvement automatique traitées par votre compte marchand.

Exemple de recherche – C#

Voici un exemple de ddLookupRequest en C#.

// Prepare the call to the Direct Debit Web Service

DDLookupRequestV1 ddLookupRequest = new DDLookupRequestV1();

MerchantAccountV1 merchantAccount = new MerchantAccountV1();

merchantAccount.accountNum = "12345678";

merchantAccount.storeID = "myStoreID";

merchantAccount.storePwd = "myStorePWD";

ddLookupRequest.merchantAccount = merchantAccount;

ddLookupRequest.confirmationNumber = "123456789";

DateV1 startDate = new DateV1();

startDate.year = "2012";

startDate.month = "08";

startDate.day = "15";

startDate.hour = "11";

startDate.minute = "00";

startDate.second = "00";

ddLookupRequest.startDate = startDate;

ddLookupRequest.startDateSpecified = true;

DateV1 endDate = new DateV1();

endDate.year = "2012";

endDate.month = "08";

endDate.day = "15";

endDate.hour = "14";

endDate.minute = "00";

endDate.second = 00;endDate.second = "00";

ddLookupRequest.endDate = endDate;

ddLookupRequest.endDateSpecified = true;



//Perform the Web Services call to process the request

DirectDebitServiceV1 ddService = new DirectDebitServiceV1();

DDCheckResponseV1 ddCheckResponse = ddService.lookup(ddLookupRequest);

// Print out the result

String responseTxt = ddCheckResponse.code + " - " + ddCheckResponse.decision;

responseTxt += "Transactions:" + Environment.NewLine;

if (ddCheckResponse.transaction != null)

{

for (int i = 0; i < ddCheckResponse.transaction.Length; i++)

{

responseTxt += " - confirmationNumber: " +

ddCheckResponse.transaction[i].confirmationNumber + Environment.NewLine;

responseTxt += " - merchantRefNum: " +

ddCheckResponse.transaction[i].merchantRefNum + Environment.NewLine;

responseTxt += " - txnTime: " +

ddCheckResponse.transaction[i].txnTime + Environment.NewLine;

responseTxt += " - amount: " +

ddCheckResponse.transaction[i].amount + Environment.NewLine;

StatusV1 status = ddCheckResponse.transaction[i].status;

if (status != null){

responseTxt += " - status: " +

status.code + Environment.NewLine;

responseTxt += " - status effective date:" +

status.effectiveDate + Environment.NewLine;

}

responseTxt += Environment.NewLine;

}

}

responseTxt = responseTxt.Replace("\n", Environment.NewLine);

System.Console.WriteLine(responseTxt);

if (DecisionV1.ACCEPTED.Equals(ddCheckResponse.decision))

{

System.Console.WriteLine("Transaction Found.");

}

else

{

System.Console.WriteLine("Transaction Failed or Not Found with decision: " +

ddCheckResponse.decision);

}

Schéma ddLookupRequestV1

Un objet de document ddLookupRequestV1 a la structure suivante :

Éléments ddLookupRequestV1

L’objet de document ddLookupRequestV1 peut contenir les éléments suivants :

ÉlémentÉlément enfantRequisTypeDescription

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

 

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.

merchantRefNum

 

Conditional

string

Max = 40

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.

startDate

year

Requis

Int

Max = 9999

Il s’agit de l’année définie pour le début de la recherche.

 

month

Requis

Int

Min = 1

Max = 12

Il s’agit du mois défini pour le début de la recherche.

 

day

Requis

Int

Min = 1

Max = 31

Il s’agit du jour défini pour le début de la recherche.

 

hour

Requis

Int

Min = 0

Max = 23

Il s’agit de l’heure définie pour le début de la recherche.

 

minute

Requis

Int

Min = 0

Max = 59

Il s’agit de la minute définie pour le début de la recherche.

 

second

Requis

Int

Min = 0

Max = 59

Il s’agit de la seconde définie pour le début de la recherche.

endDate

year

Requis

Int

Max = 9999

Il s’agit de l’année définie pour la fin de la recherche.

 

month

Requis

Int

Min = 1

Max = 12

Il s’agit du mois défini pour la fin de la recherche.

 

day

Requis

Int

Min = 1

Max = 31

Il s’agit du jour défini pour la fin de la recherche.

 

hour

Requis

Int

Min = 0

Max = 23

Il s’agit de l’heure définie pour la fin de la recherche.

 

minute

Requis

Int

Min = 0

Max = 59

Il s’agit de la minute définie pour la fin de la recherche.

 

second

Requis

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 mandat BACS (Royaume-Uni).

Le mandat de prélèvement automatique vous permet de créer un mandat pour le compte bancaire d’un client et de le déposer auprès de sa banque, ce qui est nécessaire pour que vous puissiez effectuer une opération de prélèvement afin de transférer de l’argent du compte bancaire de ce client vers votre compte marchand.

Lorsque vous soumettez une ddMandateRequestV1, Paysafe renverra une valeur pour l’élément mandateReference dans la réponse. Cette valeur est soit basée sur la valeur que vous envoyez dans la requête, soit générée automatiquement par le système Paysafe. Vous utiliserez cette valeur dans l’élément mandateReference (qui est un élément enfant de l’élément check) lorsque vous traiterez les futures requêtes de prélèvement sur le compte bancaire du client à l’aide de ddCheckRequestV1.

L’élément mandateReference comporte 10 caractères. Si vous envoyez une requête avec une valeur de moins de 10 caractères, Paysafe préremplit la référence avec des 0 pour compléter les 10 caractères. Par exemple, une valeur demandée “ABCDEFG” renverra une valeur “000ABCDEFG”. Si aucune valeur n’est transmise, Paysafe créera la valeur pour vous et la renverra dans la réponse.

Au départ, l’état du mandat est W (Pending), puis C (Completed) lorsqu’il a été mis en lot – à ce stade, le mandat ne peut pas encore être utilisé pour les opérations de prélèvement automatique. Le réseau bancaire prend généralement 5 jours pour traiter le mandat, de sorte que 5 jours après que le mandat a été mis en lot, Paysafe change l’état du mandat à AP (actif). Il peut alors être utilisé pour autoriser des opérations de prélèvement automatique sur le compte bancaire pour lequel il a été créé. Il est à noter que si le prélèvement est postdaté par le biais du paramètre txnDate dans la requête ddCheckRequestV1, le mandat peut être utilisé alors qu’il n’est pas encore actif, à condition que la txnDate soit définie sur un minimum de 5 jours ouvrables dans le futur afin de laisser au mandat le temps de devenir actif. Pour faciliter ce processus, la date à laquelle un mandat deviendra actif est renvoyée dans l’élément effectiveDate de la réponse à ddMandateRequestV1.

Les mandats sont automatiquement mis en lot le jour ouvrable suivant, sauf si la valeur de l’option autoSend n’est pas définie sur Y, auquel cas le mandat restera dans l’état PCA (Pending Customer Approval – en attente d’approbation par le client). Cet état intermédiaire facultatif avant W vous permet d’effectuer des vérifications supplémentaires sur le client, ou permet au client d’examiner les informations ayant reçu mandateReference, avant de poursuivre. Le mandat peut alors passer d’un état PCA à un état W en utilisant soit la requête changeStatus, soit l’arrière-guichet marchand Paysafe.

Créer des requêtes de mandat SEPA

Pour traiter une transaction de prélèvement automatique SEPA, vous devez préalablement établir un accord de mandat avec votre client et envoyer votre identifiant de référence de mandat dans l’élément mandateReference. Veuillez noter que l’identifiant de référence de votre mandat peut comporter jusqu’à 35 caractères.

Les mandats ne sont pas nécessaires pour les crédits SEPA.

Les mandats de prélèvement automatique SEPA sont actifs dès qu’ils sont créés par le marchand, de sorte que vous pouvez immédiatement faire suivre la requête ddMandateRequest par une ddCheckRequest.

exemple de mandat – C#

Voici un exemple deddMandateRequest en C#.

// Prepare the call to the Direct Debit Web Service

DDMandateRequestV1 ddMandateRequest = new DDMandateRequestV1();

MerchantAccountV1 merchantAccount = new MerchantAccountV1();

merchantAccount.accountNum = "12345678";

merchantAccount.storeID = "myStoreID";

merchantAccount.storePwd = "myStorePWD";

ddCheckRequest.merchantAccount = merchantAccount;

CheckV1 check = new CheckV1();

check.routingNum = "123456789";

check.accountNum = "987654321";

check.bankName = "Chase";

check.payee = "ACME Inc.";

ddMandateRequest.check = check;

BillingDetailsV1 billingDetails = new BillingDetailsV1();

billingDetails.firstName = "Jane";

billingDetails.lastName = "Jones";

billingDetails.street = "123 Main Street";

billingDetails.city = "Cambridge";

billingDetails.country = CountryV1.UK;

billingDetails.zip = "CB12345";

billingDetails.phone = "1222 444000";

billingDetails.checkPayMethod = CheckPayMethodV1.WEB;

ddMandateRequest.billingDetails = billingDetails;

ddMandateRequest.autoSend = "Y";

//Perform the Web Services call to process the request

DirectDebitServiceV1 ddService = new DirectDebitServiceV1();

DDCheckResponseV1 ddTxnResponse = ddService.mandate(ddCheckRequest);



// Print out the result

String responseTxt = ddTxnResponse.code + " - " + ddTxnResponse.decision +
" - " + ddTxnResponse.description;

responseTxt += "Details:" + Environment.NewLine;

if (ddTxnResponse.detail != null)if (ddTxnResponse.detail != null)

{

for (int i = 0; i < ddTxnResponse.detail.Length; i++)

{

responseTxt += " - " + ddTxnResponse.detail[i].tag + " - " +

ddTxnResponse.detail[i].value + Environment.NewLine;

}

}

responseTxt = responseTxt.Replace("\n", Environment.NewLine);

System.Console.WriteLine(responseTxt);

if (DecisionV1.ACCEPTED.Equals(ddTxnResponse.decision))

{

System.Console.WriteLine("Transaction Successful.");

}

else

{

System.Console.WriteLine("Transaction Failed with decision: " +
ddTxnResponse.decision);

}

Schéma ddMandateRequestV1

Un objet de document ddMandateRequestV1 a la structure suivante :

Éléments ddMandateRequestV1

L’objet de document ddMandateRequestV1 peut contenir les éléments suivants :

ÉlémentÉlément enfantRequisTypeDescription

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

 

Conditional

string

Max = 40

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 initiale.

check

accountType

Facultatif

enumeration

Il s’agit du type de compte de chèques utilisé pour la transaction. Les valeurs éventuelles sont :

•    PC - Personal Checking (compte de chèques personnel)

•    PS - Personal Savings (compte d’épargne personnel)

•    PL - Personal Loan (prêt personnel)

•    BC - Business Checking (compte de chèques commercial)

•    BS - Business Savings (compte d’épargne commercial)

•    BL - Business Loan (prêt à l’entreprise)

REMARQUE : Si cet élément n’est pas spécifié, la valeur par défaut est PC.

 

bankName

Facultatif

string

Max = 40

Il s’agit du nom de la banque du client auprès de laquelle cette opération est comptabilisée.

 

checkNum

Facultatif

Long

Max = 8

Il s’agit du numéro de série du chèque, fourni au moment de la requête de transaction.

 

accountNum

Oui

string

Max = 17

Il s’agit du numéro de compte bancaire du client.

Pour les transactions SEPA, il s’agit de l’IBAN (International Bank Account Number) du compte bancaire du client.

 

routingNum

Oui

string

Min = 6

Max = 9

Si BIC,

Min = 8

Max = 11

Pour les comptes en livres sterling, il s’agit du code de tri à 6 chiffres de la banque du client.

Pour les transactions SEPA, il s’agit du BIC (Bank Identifier Code) du compte bancaire du client. Si vous n’avez pas le BIC, vous pouvez soumettre la valeur suivante, sensible à la casse : EMPTYBIC

 

payee

Facultatif

string

Max = 81

Il s’agit du descripteur qui apparaîtra sur le compte bancaire du client. Il n’est requis que pour les transactions de crédit.

Si vous indiquez une valeur pour ce champ, cette valeur sera utilisée comme descripteur de l’énoncé. Si vous ne fournissez pas de valeur pour ce champ, la valeur par défaut configurée pour le compte marchand sera utilisée.

 

bankCountry

Conditional

enumeration

Il s’agit du pays dans lequel la banque est située. Cet élément n’est obligatoire que pour certains pays.

 

bankCity

Conditional

string

Max = 40

Il s’agit de la ville dans laquelle la banque est située. Cet élément n’est obligatoire que pour certains pays.

 

mandateReference

Conditional

string

Max = 10

Pour SEPA,

Max = 35

Il s’agit de la référence du mandat qui permet de débiter le compte. Vous pouvez éventuellement définir vous-même la valeur de mandateReference lors de la création de la requête. Si vous ne fournissez pas de valeur ici, elle sera définie par Paysafe et renvoyée dans la réponse.

Pour le SEPA, cet élément est obligatoire, et le marchand crée sa propre mandateReference.

billingDetails

checkPayMethod

Facultatif

enumeration

Il s’agit du type de paiement.
Les valeurs éventuelles sont :

•    WEB (compte de chèques personnel seulement)

•    TEL (compte de chèques personnel seulement)

•    PPD (compte de chèques personnel seulement)

•    CCD (compte de chèques commercial seulement)

REMARQUE : Si cet élément n’est pas spécifié, la valeur par défaut est WEB.

 

firstName

Conditional

string

Max = 40

Il s’agit du prénom du client.

Requis si checkPayMethod est défini sur WEB ou TEL.

 

lastName

Conditional

string

Max = 40

Il s’agit du nom de famille du client.

Requis si accountType est défini sur PC, PS ou PL.

 

companyName

Conditional

string

Max = 50

Il s’agit du nom de l’entreprise.

Requis si accountType est défini sur BC, BS ou BL.

 

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

Conditional

Si État, alors énumération

Si région, alors chaîne
Max = 40

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

Facultatif

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.

customerIp

 

Facultatif

string

Max = 50

Il s’agit de l’adresse IP du client.

txnDate

 

Facultatif

dateTime

Il s’agit de la date et de l’heure auxquelles la transaction a eu lieu.

Pour un débit ou un crédit, ou pour ddMandateRequestV1, il peut s’agir de la date et de l’heure futures auxquelles la transaction aura lieu.

autoSend

 

Facultatif

Booléen

Cela permet de contrôler le moment où le mandat est envoyé à la banque.

Les valeurs éventuelles sont :

•    Y = Le mandat passe à l’état W (Pending) (en attente), prêt à être mis en lot puis envoyé à la banque.

•    N = Le mandat conservera l’état PCA (Pending Customer Approval) (en attente d’approbation par le client) et ne sera pas envoyé à la banque.

Si l’état autoSend est défini sur N, le mandat peut être modifié ultérieurement pour passer à l’état W en utilisant la requête changeStatus; le mandat sera alors envoyé à la banque à la prochaine heure de mise en lots.

REMARQUE : Pour le SEPA, ce paramètre doit être défini sur Y, et le mandat sera défini sur AP (actif).

addendumData

tag

Facultatif

string

Max = 30

Il s’agit de données supplémentaires que le marchand peut inclure dans la requête de transaction.

 

value

Facultatif

string

Max = 1024

Il s’agit de données supplémentaires que le marchand peut inclure dans la requête de transaction.

Créer des requêtes de modification d’état

Une requête de modification d’état vous permet de modifier l’état de certaines opérations de prélèvement automatique. Vous pouvez effectuer les modifications d’état suivantes :

SolutionType de requêteÉtat initialÉtat résultant

Prélèvement automatique au Royaume-Uni (BACS)

•   Mandat

•    PCA – Pending customer approval (En attente d’approbation par le client)

•    W – En attente

•    X – Annulé

Prélèvement automatique au Royaume-Uni (BACS)

•    Débit

•    Crédit

•   Mandat

•    W – En attente

•    X – Annulé

Prélèvement automatique au Royaume-Uni
(passerelle des marchands)

•    Débit

•    Crédit

•   Mandat

•    C – Compteted (Terminé)

•    CL – Cleared (Compensé)

•    RE – Returned (Renvoyé)

REMARQUE : À utiliser uniquement lorsque votre banque commanditaire a refusé la transaction et qu’aucun rapport BACS n’a été produit. Attendez 5 jours ouvrables à compter de la date d’achèvement et contactez le service de soutien technique avant d’effectuer cette requête de modification.

TEF/ACH

•    Débit

•    Crédit

•    C – Compteted (Terminé)

•    X – Annulé

REMARQUE : Uniquement possible lorsque la requête n’a pas encore été envoyée à la banque.

Prélèvement automatique SEPA

•   Mandat

•    AP – Active (Actif)

•    X – Annulé

Prélèvement automatique SEPA

•    Débit

•    W – En attente

•    C – Compteted (Terminé)

•    X – Annulé

REMARQUE : Les opérations de prélèvement automatique SEPA ne peuvent être annulées qu’avant leur date d’exécution.

Paysafe répond à votre requête de modification d’état avec ddCheckResponseV1. Dans cette réponse, le confirmationNumber identifie la requête qui a été mise à jour (charge, credit ou mandateRequest), et vous pouvez confirmer le nouvel état de la transaction que vous avez mise à jour.

Exemple de modification d’état – C#

Voici un exemple de ddChangeStatusRequest en C#.

// Prepare the call to the Direct Debit Web Service

DDChangeStatusRequestV1 ddChangeStatusRequest = new DDChangeStatusRequestV1();

MerchantAccountV1 merchantAccount = new MerchantAccountV1();

merchantAccount.accountNum = "12345678";

merchantAccount.storeID = "myStoreID";

merchantAccount.storePwd = "myStorePWD";

ddChangeStatusRequest.merchantAccount = merchantAccount;

ddChangeStatusRequest.confirmationNumber = "123456"; // A valid confirmation number from a previous mandate or echeck;

ddChangeStatusRequest.status = "C";

//Perform the Web Services call to process the request

DirectDebitServiceV1 ddService = new DirectDebitServiceV1();

DDCheckResponseV1 ddTxnResponse = ddService.changeStatus(ddCheckRequest);



// Print out the result

String responseTxt = ddTxnResponse.code + " - " + ddTxnResponse.decision +
" - " + ddTxnResponse.description;

responseTxt += "Details:" + Environment.NewLine;

if (ddTxnResponse.detail != null)if (ddTxnResponse.detail != null)

{

for (int i = 0; i < ddTxnResponse.detail.Length; i++)

{

responseTxt += " - " + ddTxnResponse.detail[i].tag + " - " +

ddTxnResponse.detail[i].value + Environment.NewLine;

}

}

responseTxt = responseTxt.Replace("\n", Environment.NewLine);

System.Console.WriteLine(responseTxt);

if (DecisionV1.ACCEPTED.Equals(ddTxnResponse.decision))

{

System.Console.WriteLine("Transaction Successful.");

}

else

{

System.Console.WriteLine("Transaction Failed with decision: " +
ddTxnResponse.decision);

}



Schéma ddChangeStatusRequest

Un objet de document ddChangeStatusRequestV1 a la structure suivante :

Éléments ddChangeStatusRequestV1

L’objet de document ddChangeStatusRequestV1 peut contenir les éléments suivants :

ÉlémentÉlément enfantRequisTypeDescription

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

 

Facultatif

string

Max = 15

Cette valeur indique la transaction dont vous souhaitez modifier l’état.

Il s’agit du confirmationNumber renvoyé par Paysafe en réponse à la requête de transaction initiale.

status

 

Requis

enumeration

Il s’agit du nouveau code d’état pour la transaction. Les valeurs éventuelles sont :

•    C – Compteted (Terminé)

•    RE – Returned (Renvoyé)

•    W – En attente

•    X – Annulé

addendumData

tag

Facultatif

string

Max = 30

Il s’agit de données supplémentaires que le marchand peut inclure dans la requête de transaction.

 

value

Facultatif

string

Max = 1024

Il s’agit de données supplémentaires que le marchand peut inclure dans la requête de transaction.

Créer des requêtes de mise à jour de mandat

Seuls les marchands qui traitent des prélèvements automatiques SEPA peuvent utiliser ce type de requête.

Une requête de mise à jour de mandat vous permet de mettre à jour un mandat existant. En fait, vous créez un nouveau mandat en fonction des informations contenues dans le mandat existant, mais avec certaines informations mises à jour (p. ex. le numéro de compte bancaire d’un client peut changer).

Lorsque vous soumettez une ddUpdateMandateRequestV1, Paysafe définit l’état du mandat sur T (transféré). Un nouveau mandat est créé, copiant les données du mandat existant, à l’exception de l’une des trois valeurs suivantes qui peuvent avoir été spécifiées dans la requête de mise à jour du mandat :

  • mandateReference
  • accountNum
  • routingNum

Toutes les nouvelles valeurs spécifiées dans la requête pour ces éléments seront utilisées dans le nouveau mandat.

Le nouveau mandat aura l’état PCA (en attente d’approbation par le client) ou AP (actif), conformément au mandat existant. Le nouveau mandat sera lié au mandat existant, de sorte que le système sache que le mandat existant a été transféré au nouveau mandat.

Paysafe répond à votre requête de mise à jour de mandat avec la ddCheckResponseV1. Dans cette réponse, le confirmationNumber indique que le nouveau mandat a été créé.

Exemple de mise à jour d’un mandat – C#

Voici un exemple de ddUpdateMandateRequest en C#.

// Prepare the call to the Direct Debit Web Service

DDUpdateMandateRequestV1 ddUpdateMandateRequest = new DDUpdateMandateRequestV1();

MerchantAccountV1 merchantAccount = new MerchantAccountV1();

merchantAccount.accountNum = "12345678";

merchantAccount.storeID = "myStoreID";

merchantAccount.storePwd = "myStorePWD";

ddUpdateMandateRequest.merchantAccount = merchantAccount;

ddUpdateMandateRequest.confirmationNumber = "123456"; // A valid confirmation number from a previous mandate or echeck;

ddUpdateMandateRequest.mandateReference = "NL95ZZZ999999991458_TEST7A";

//Perform the Web Services call to process the request

DirectDebitServiceV1 ddService = new DirectDebitServiceV1();

DDCheckResponseV1 ddTxnResponse = ddService.updateMandate(ddCheckRequest);



// Print out the result

String responseTxt = ddTxnResponse.code + " - " + ddTxnResponse.decision +
" - " + ddTxnResponse.description;

responseTxt += "Details:" + Environment.NewLine;

if (ddTxnResponse.detail != null)if (ddTxnResponse.detail != null)

{

for (int i = 0; i < ddTxnResponse.detail.Length; i++)

{

responseTxt += " - " + ddTxnResponse.detail[i].tag + " - " +

ddTxnResponse.detail[i].value + Environment.NewLine;

}

}

responseTxt = responseTxt.Replace("\n", Environment.NewLine);

System.Console.WriteLine(responseTxt);

if (DecisionV1.ACCEPTED.Equals(ddTxnResponse.decision))

{

System.Console.WriteLine("Transaction Successful.");

}

else

{

System.Console.WriteLine("Transaction Failed with decision: " +
ddTxnResponse.decision);

}

Schéma ddUpdateMandateRequestV1

Un objet de document ddUpdateMandateRequestV1 a la structure suivante :

Éléments ddUpdateMandateRequestV1

Le document d’objet ddUpdateMandateRequestV1 peut contenir les éléments suivants :

ÉlémentÉlément enfantRequisTypeDescription

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

 

Facultatif

string

Max = 15

Cette valeur indique le mandat que vous souhaitez mettre à jour.

Il s’agit du confirmationNumber renvoyé par Paysafe en réponse à la requête de transaction initiale.

mandateReference

 

Conditional

string

Max = 10

Pour SEPA,

Max = 35

Il s’agit de la référence du mandat qui permet de débiter le compte. Il s’agit de la valeur attribuée au paramètre mandateReference dans la réponse à ddMandateRequestV1.

Il peut être nécessaire de mettre à jour la mandateReference, par exemple si les conditions de facturation ont changé mais que toutes les autres informations relatives au mandat sont restées inchangées.

accountNum

 

Conditional

string

Max = 17

Si IBAN,
Max = 32

Pour les transactions SEPA, il s’agit de l’IBAN (International Bank Account Number) du compte bancaire du client.

Il peut être nécessaire de mettre à jour le accountNum, p. ex. si le client est désormais facturé sur un compte différent mais auprès de la même banque (c.-à-d. lorsqu’il n’est pas nécessaire de modifier le BIC).

routingNum

 

Conditional

string

Min = 6

Max = 9

Si BIC,

Min = 8

Max = 11

Pour les transactions SEPA, il s’agit du BIC (Bank Identifier Code) du compte bancaire du client. Si vous n’avez pas le BIC, vous pouvez soumettre la valeur suivante, sensible à la casse : EMPTYBIC

Vous devrez mettre à jour le routinNum, p. ex. si le client a changé de banque, auquel cas le numéro de compte devra également être mis à jour.

Au moins un de ces trois éléments doit être inclus dans la requête : mandateReference, accountNum et routingNum.

Traitement de la réponse

L’élément ddCheckResponseV1 a la structure suivante :

Les éléments suivants sont pertinents pour une ddCheckResponseV1 :

ÉlémentÉlément enfantRequisTypeDescription

requestId

 

Facultatif

 

Il s’agit du numéro d’identification unique renvoyé par Paysafe pour un enregistrement s’il a été traité dans un fichier de traitement par lots.

confirmationNumber

 

Oui

string

Max = 15

Il s’agit du numéro de confirmation renvoyé par Paysafe.

S’il est renvoyé en réponse à ddUpdateMandateRequestV1, il indique le nouveau mandat qui a été créé.

merchantRefNum

 

Facultatif

string

Max = 40

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 initiale. Elle n’est renvoyée qu’en réponse à une requête de recherche.

mandateReference

 

Oui

string

Max = 20

Il s’agit de la référence du mandat renvoyée par Paysafe. Il s’agit soit de la valeur renvoyée par la requête, soit, si elle n’a pas été spécifiée correctement dans la requête, de la valeur générée par Paysafe.

Pour le SEPA, il s’agit de la référence du mandat créée par le marchand dans la requête.

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.

•    Not Found (Introuvable) – la recherche de transaction n’a donné aucune correspondance.

code

 

Oui

Int

Il s’agit d’un code numérique qui catégorise la réponse. Voir Codes de réponse.

actionCode

 

Facultatif

enumeration

Indique quelle mesure prendre.
Les valeurs suivantes sont possibles :

•    C = Consumer Parameter Error (Erreur de paramètre du 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 du 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

 

Facultatif

string

Max = 100

Il s’agit d’une description lisible par un humain de l’élément code.

detail

tag

Facultatif

string

Max = 1024

Il s’agit de la classification de l’élément detail.

 

value

Facultatif

string

Max = 30

Il s’agit d’une description du détail.

txnTime

 

Oui

dateTime

Il s’agit de la date et de l’heure auxquelles la transaction a été traitée par Paysafe.

status

 

Facultatif

  
 

code

Conditional

enumeration

Il s’agit de l’état de la première transaction qui correspond à une requête de recherche. Les valeurs éventuelles sont :

•    AP – Active (Actif)

•    C – Completed batch (Lot terminé)

•    CB – Clawed back (Récupéré)

•    CL – Cleared transaction (Transaction compensée)

•    DE – Declined (Refusé)

•    DI – Dipsuted (Contesté)

•    E – Error batch (Lot d’erreurs)

•    EX – Expired (Expiré)

•    F – Failed (Échec)

•    GR – Good for reversal (Bon pour le renversement)

•    MI – Manual intervention required (Intervention manuelle requise)

•    PCA – Pending customer approval (En attente d’approbation par le client)

•    PR1 – Re-Presented 1 (Présenté à nouveau 1)

•    PR2 – Re-Presented 2 (Présenté à nouveau 2)

•    PX – Pending cancel (Annulation en attente)

•    RE – Returned (Renvoyé)

•    REF – Rejected final (Refus final)

•    RV – Reversed (Renversé)

•    T – Transferred (Transféré)

•    UM – Unauthorized mandate (Mandat non autorisé)

•    W – En attente

•    X – Annulé

 

effectiveDate

Conditional

dateTime

•    Il s’agit de la date et de l’heure auxquelles l’état de la requête de recherche est en vigueur.

•    Lorsqu’elle est incluse dans la paire balise/valeur de l’élément detail pour une réponse à une requête de mandat, il s’agit de la date à laquelle le mandat deviendra actif auprès de la banque (en comptant 5 jours ouvrables à partir de l’heure de mise en lot). Vous pouvez soumettre une requête de débit à partir de minuit à cette date, ou postdater votre débit avec txnTime qui a une valeur de cette date ou plus tard. Si vous soumettez une facture dont la date est antérieure à la date d’entrée en vigueur du mandat, vous recevrez un message d’erreur.

devise

 

Facultatif

string

La valeur sera un code de devise. Elle n’est renvoyée qu’en réponse à une requête de recherche.

montant

 

Facultatif

string

Max =

9999999.99

Il s’agit du montant de la première transaction qui correspond à une requête de recherche.

transaction

 

Facultatif

 

Elle n’est renvoyée qu’en réponse à une requête de recherche. Toutes les transactions qui correspondent à la requête de recherche sont renvoyées ici.

 

confirmationNumber

Conditional

string

Max = 15

Il s’agit du numéro de confirmation renvoyé par Paysafe pour une transaction antérieure.

 

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 initiale. Elle n’est renvoyée qu’en réponse à une requête de recherche.

 

txnTime

Conditional

dateTime

Il s’agit de la date et de l’heure auxquelles la transaction a été traitée par Paysafe.

 

status

Conditional

 

Il contient les éléments code et effectiveDate de la transaction. Voir l’élément status ci-dessus dans ce tableau pour plus de détails.

 

montant

Conditional

string

Max =

9999999.99

Il s’agit du montant de la transaction.

Pour traiter une réponse :

  1. Obtenez les données de la réponse, qui sont disponibles via les méthodes get() de la réponse.

    String responseTxt = ddTxnResponse.code + " - " + ddTxnResponse.decision +
    " - " + ddTxnResponse.description;

    responseTxt += "Details:" + Environment.NewLine;

    if (ddTxnResponse.detail != null)if (ddTxnResponse.detail != null)

    {

    for (int i = 0; i < ddTxnResponse.detail.Length; i++)

    {

    responseTxt += " - " + ddTxnResponse.detail[i].tag + " - " +

    ddTxnResponse.detail[i].value + Environment.NewLine;

    }

    }

    responseTxt = responseTxt.Replace("\n", Environment.NewLine);

    System.Console.WriteLine(responseTxt);

    if (DecisionV1.ACCEPTED.Equals(ddTxnResponse.decision))

    {

    System.Console.WriteLine("Transaction Successful.");

    }

    else

    {

    System.Console.WriteLine("Transaction Failed with decision: " +
    ddTxnResponse.decision);

    }
  2. 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. Voir Codes de réponse pour de plus amples renseignements.