Cette fonctionnalité est réservée aux éditeurs ayant un contrat avec SlimPay et qui utilisent la version Slimpay V2 dans AboWeb.
A savoir que le paramètre SLIMPAY_V2_ENABLED est activé.
| Services documentés dans cet article
Structure d'échange (WSMandat)
Création d'un mandat SEPA à partir d'un BIC IBAN (createMandatSepaByBicIban)
Création d'un mandat SEPA à partir d'un RUM (createMandatSepa)
Visualisation d'un mandat SEPA (getMandat)
Visualisation du mandat SEPA actif du client (getMandatDefaut)
Liste des mandats du client (getMandatsByCodeClient)
Nombre de mandats du client (getNbMandatsByCodeClient)
Activer un des mandats du client (setMandatSepaDefaut)
| Technologie
|| Protocole
La solution technique mise en place côté AboWeb repose sur des Web Services sans états.
Le protocole utilisé est SOAP 1.1. La couche de transport utilisée est HTTP 1.1.
L’intérêt principal de cette technologie est de pouvoir fournir un moyen d’échange indépendant de la plateforme et du langage de programmation utilisé. Les messages basés sur XML peuvent également être validés par une grammaire et des outils appropriés pour s’assurer que leur structure est correcte avant toute tentative de traitement des données.
|| Sécurité
Les Web Services implémentent la norme WS-Security 1.0 afin de réaliser les fonctions d’authentification des messages échangés.
L’authentification est réalisée à l’aide d’un login et d’un mot de passe crypté avec l’algorithme de hachage SHA-1 en base64 dans l’en-tête des messages. La balise utilisée, à savoir <UsernameToken> est conforme au standard.
Exemple d’en-tête (en rouge) :
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ges="http://www.gesmag.com/">
${color}[#ff0000](<soapenv:Header>
<wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<wsse:UsernameToken>
<wsse:Username>login</wsse:Username>
<wsse:Password>mdp</wsse:Password>
</wsse:UsernameToken>
</wsse:Security>
</soapenv:Header>
)
<soapenv:Body>
<ges:getXXX>
[…]
</ges:getXXX>
</soapenv:Body>
</soapenv:Envelope>
La confidentialité et l’intégrité des messages ne sont pas implémentées à ce jour.
|| Point d’accès
Les points d’accès sont contenus dans les fichiers WSDL générés sur les différents environnements.
Sur l’environnement de test, nous avons :
**Service :** gestion des cartes bancaires
**URL :** http://preprod.aboweb.com/aboweb/SepaService?wsdl
Le compte utilisateur sur cet environnement sera communiqué par mail.
| Structures d’échange
Ce chapitre présente les structures de données complexes utilisées comme paramètres et valeurs de retour des Web Services. Pour chaque structure, les noms, types et descriptions des paramètres sont fournies. Les valeurs obligatoires en entrée sont indiquées. Les données en lecture seule sont gérées exclusivement dans AboWeb.
|| Structure d'échange (WSMandat)
![Structure d'échange WSMandat]
| Services
Ce chapitre décrit l’ensemble des services nécessaires à la réalisation des cas d’utilisation. Pour chaque service, plusieurs informations sont fournies : le nom du service, la fonctionnalité réalisée, les paramètres en entrée, la valeur de retour et les cas d’erreurs (SOAPFault). Les structures de données complexes sont présentées dans le chapitre "Structures d'échange".
Les informations concernant l’éditeur sont déduites de l’utilisateur authentifié. On considère qu’il n’y a qu’une société.
Pour des raisons de performance, la taille des listes retournée est limitée à 50 objets. Par ailleurs, il faut éviter de réaliser des opérations d’ajout/suppression d’objets pendant le parcourt des listes à moins de savoir gérer le décalage à l’aide de l’attribut « offset ».
|| Création d'un mandat SEPA à partir d'un BIC IBAN (createMandatSepaByBicIban)
Ce WS va interroger Slimpay qui renverra un identifiant RUM correspondant à ce client et ce BIC/IBAN.
Un mandat correspondant à cette RUM sera créé dans AboWeb s'il n'existe pas déjà.
Il sera directement associé au client en tant que mandat actif du client.
Ce WS renvoie l'identifiant refMandat qui est l'identifiant AboWeb du mandat, à ne pas confondre avec le tokenSepa ou RUM, qui correspond à l'identifiant du mandat chez Slimpay.
||| Exemple d'appel de createMandatSepaByBicIban
__**Trame :**__
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ges="http://www.gesmag.com/">
<soapenv:Header/>
<soapenv:Body>
<ges:createMandatSepaByBicIban>
** <codeClient>38750291</codeClient>**
** <refSociete>1</refSociete>**
** <bic>AGRIFRPP</bic>**
** <iban>FR7630006000011234567890189</iban>**
</ges:createMandatSepaByBicIban>
</soapenv:Body>
</soapenv:Envelope>
__**Retour :**__
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<S:Body>
<ns2:createMandatSepaByBicIbanResponse xmlns:ns2="http://www.gesmag.com/">
** <createMandatSepaByBicIban>153712</createMandatSepaByBicIban>**
</ns2:createMandatSepaByBicIbanResponse>
</S:Body>
</S:Envelope>
**<createMandatSepaByBicIban>153712</createMandatSepaByBicIban>** correspond à l'identifiant interne AboWeb du mandat, à ne pas confondre avec le tokenSepa ou RUM qui correspond à l'identifiant du mandat chez Slimpay.
Cet identifiant permet de récupérer les informations de la carte via la WS getMandat et d'attribuer la carte à un client via le WS setMandatSepaDefaut.
__**Retour erreur Slimpay :**__
Au cas ou l'on indique un IBAN incorrect en paramètre de ce WS, Slimpay renverra une erreur de ce type :
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body>
<S:Fault xmlns:ns4="http://www.w3.org/2003/05/soap-envelope">
<faultcode>1300</faultcode>
** <faultstring>Impossible de créer le mandat Erreur Slimpay [code=134 retour=Invalid iban property: invalid value FR7630006000011234567890188]</faultstring>**
</S:Fault>
</S:Body>
</S:Envelope>
|| Création d'un mandat SEPA à partir d'un RUM (createMandatSepa)
Ce WS va interroger Slimpay pour vérifier l'existence de la RUM passée dans le paramètre token.
Cette RUM correspond à l'identifiant du mandat chez Slimpay. Et elle doit exister chez le prestataire.
Un mandat correspondant à cette RUM sera ensuite créé dans AboWeb s'il n'existe pas déjà.
Attention, Il ne sera pas directement associé au client en tant que mandat actif du client. Son activation se fera soit lors de la validation de la commande, soit pas le WS setMandatSepaDefaut.
Ce WS renvoie l'identifiant refMandat qui est l'identifiant AboWeb du mandat, à ne pas confondre avec le tokenSepa ou RUM qui correspond à l'identifiant du mandat chez Slimpay.
||| Exemple d'appel de createMandatSepa
__**Trame :**__
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ges="http://www.gesmag.com/">
<soapenv:Header/>
<soapenv:Body>
<ges:createMandatSepa>
** <codeClient>38750292</codeClient>**
** <refSociete>1</refSociete>**
** <token>SLMP040025340</token>**
</ges:createMandatSepa>
</soapenv:Body>
</soapenv:Envelope>
__**Retour :**__
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<S:Body>
<ns2:createMandatSepaResponse xmlns:ns2="http://www.gesmag.com/">
** <createMandatSepa>153664</createMandatSepa>**
</ns2:createMandatSepaResponse>
</S:Body>
</S:Envelope>
</S:Envelope>
** <createMandatSepa>153664</createMandatSepa>** correspond à l'identifiant interne AboWeb du mandat, à ne pas confondre avec la RUM ou tokenSepa, qui correspond à l'identifiant du mandat chez Slimpay.
Cet identifiant permet de récupérer les informations de la carte via la WS getMandat et d'attribuer la carte à un client via le WS setMandatSepaDefaut.
__**Retour erreur Slimpay :**__
Au cas ou l'on indique une RUM incorrrecte en paramètre de ce WS, Slimpay renverra une erreur de ce type :
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body>
<S:Fault xmlns:ns4="http://www.w3.org/2003/05/soap-envelope">
<faultcode>1300</faultcode>
** <faultstring>Impossible de créer le mandat Erreur Slimpay [code=902 retour=The resource has not been found : mandate SLMP040025340ss not found]</faultstring>**
</S:Fault>
</S:Body>
</S:Envelope>
|| Visualisation d'un mandat SEPA (getMandat)
Ce WS récupère les informations du mandat enregistrées dans l'application AboWeb.
||| Exemple d'appel de getMandat
__**Trame :**__
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ges="http://www.gesmag.com/">
<soapenv:Header/>
<soapenv:Body>
<ges:getMandat>
** <refMandat>153614</refMandat>**
</ges:getMandat>
</soapenv:Body>
</soapenv:Envelope>
**<refMandat>153614</refMandat>** correspond à l'identifiant interne AboWeb du mandat, à ne pas confondre avec le tokenSepa ou RUM qui correspond à l'identifiant du mandat chez Slimpay.
__**Retour :**__
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<S:Body>
<ns2:getMandatResponse xmlns:ns2="http://www.gesmag.com/">
<mandatSepa>
** <actif>false</actif>**
** <codeClient>38750291</codeClient>**
** <refMandat>153614</refMandat>**
** <refSociete>1</refSociete>**
** <tokenSepa>SLMP040025359</tokenSepa>**
</mandatSepa>
</ns2:getMandatResponse>
</S:Body>
</S:Envelope>
**<refMandat>153614</refMandat>** correspond à l'identifiant interne AboWeb du mandat.
**<tokenSepa>SLMP040025359</tokenSepa>** correspond à l'identifiant du mandat chez Slimpay. Correspond à la RUM.
|| Visualisation du mandat SEPA actif du client (getMandatDefaut)
Ce WS récupère les informations du mandat actif du client enregistrées dans l'application AboWeb.
||| Exemple d'appel de getMandatDefaut
__**Trame :**__
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ges="http://www.gesmag.com/">
<soapenv:Header/>
<soapenv:Body>
<ges:getMandatDefaut>
** <codeClient>38750292</codeClient>**
** <refSociete>1</refSociete>**
</ges:getMandatDefaut>
</soapenv:Body>
</soapenv:Envelope>
__**Retour :**__
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<S:Body>
<ns2:getMandatDefautResponse xmlns:ns2="http://www.gesmag.com/">
<mandatSepaDefaut>
** <actif>true</actif>**
** <codeClient>38750292</codeClient>**
** <refMandat>153664</refMandat>**
** <refSociete>1</refSociete>**
** <tokenSepa>SLMP040025340</tokenSepa>**
</mandatSepaDefaut>
</ns2:getMandatDefautResponse>
</S:Body>
</S:Envelope>
**<refMandat>153614</refMandat>** correspond à l'identifiant interne AboWeb du mandat.
**<tokenSepa>SLMP040025359</tokenSepa>** correspond à l'identifiant du mandat chez Slimpay. Correspond à la RUM.
|| Liste des mandats du client (getMandatsByCodeClient)
Ce WS récupère les informations des mandats du client enregistrées dans l'application AboWeb.
||| Exemple d'appel de getMandatsByCodeClient
__**Trame :**__
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ges="http://www.gesmag.com/">
<soapenv:Header/>
<soapenv:Body>
<ges:getMandatsByCodeClient>
** <refSociete>1</refSociete>**
** <codeClient>38750292</codeClient>**
</ges:getMandatsByCodeClient>
</soapenv:Body>
</soapenv:Envelope>
__**Retour :**__
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<S:Body>
<ns2:getMandatsByCodeClientResponse xmlns:ns2="http://www.gesmag.com/">
<mandatsSepaByCodeClient>
** <actif>false</actif>**
** <codeClient>38750292</codeClient>**
** <refMandat>153599</refMandat>**
** <refSociete>1</refSociete>**
** <tokenSepa>SLMP040025341</tokenSepa>**
</mandatsSepaByCodeClient>
<mandatsSepaByCodeClient>
**<actif>false</actif>**
** <codeClient>38750292</codeClient>**
** <refMandat>153610</refMandat>**
** <refSociete>1</refSociete>**
** <tokenSepa>SLMP040025352</tokenSepa>**
</mandatsSepaByCodeClient>
<mandatsSepaByCodeClient>
** <actif>true</actif>**
** <codeClient>38750292</codeClient>**
** <refMandat>153664</refMandat>**
** <refSociete>1</refSociete>**
** <tokenSepa>SLMP040025340</tokenSepa>**
</mandatsSepaByCodeClient>
</ns2:getMandatsByCodeClientResponse>
</S:Body>
</S:Envelope>
**<refMandat>153614</refMandat>** correspond à l'identifiant interne AboWeb du mandat.
**<tokenSepa>SLMP040025359</tokenSepa>** correspond à l'identifiant du mandat chez Slimpay. Correspond à la RUM.
|| Nombre de mandats du client (getNbMandatsByCodeClient)
Ce WS récupère le nombre de mandats du client enregistrés dans l'application AboWeb.
||| Exemple d'appel de getNbMandatsByCodeClient
__**Trame :**__
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ges="http://www.gesmag.com/">
<soapenv:Header/>
<soapenv:Body>
<ges:getNbMandatsByCodeClient>
** <refSociete>1</refSociete>**
** <codeClient>38750292</codeClient>**
</ges:getNbMandatsByCodeClient>
</soapenv:Body>
</soapenv:Envelope>
__**Retour :**__
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<S:Body>
<ns2:getNbMandatsByCodeClientResponse xmlns:ns2="http://www.gesmag.com/">
** <result>3</result>**
</ns2:getNbMandatsByCodeClientResponse>
</S:Body>
</S:Envelope>
|| Activer un des mandats du client (setMandatSepaDefaut)
Ce WS active un des mandats du client enregistrés dans l'application AboWeb.
Le mandat doit déjà être associé au client dans AboWeb. Ce WS ne fait que l'activer.
||| Exemple d'appel de setMandatSepaDefaut
__**Trame :**__
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ges="http://www.gesmag.com/">
<soapenv:Header/>
<soapenv:Body>
<ges:setMandatSepaDefaut>
** <codeClient>38750291</codeClient>**
** <refMandat>153616</refMandat>**
</ges:setMandatSepaDefaut>
</soapenv:Body>
</soapenv:Envelope>
**<refMandat>153616</refMandat>** correspond à l'identifiant interne AboWeb du mandat, à ne pas confondre avec le tokenSepa ou RUM qui correspond à l'identifiant du mandat chez Slimpay.
__**Retour :**__
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<S:Body>
<ns2:setMandatSepaDefautResponse xmlns:ns2="http://www.gesmag.com/">
** <result>153616</result>**
</ns2:setMandatSepaDefautResponse>
</S:Body>
</S:Envelope>
** <result>153616</result>** correspond à l'identifiant interne AboWeb du mandat dans le cas ou tout s'est bien passé.
__**Retour erreur si on tente d'activer le mandat d'un autre client :**__
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body>
<S:Fault xmlns:ns4="http://www.w3.org/2003/05/soap-envelope">
** <faultcode>1287</faultcode>**
** <faultstring>Tentative d'affection du mandat 153 610 déjà lié à un autre client 38 750 292</faultstring>**
</S:Fault>
</S:Body>
</S:Envelope>
__**Retour erreur si on tente d'activer un mandat qui n'existe pas :**__
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body>
<S:Fault xmlns:ns4="http://www.w3.org/2003/05/soap-envelope">
** <faultcode>1116</faultcode>**
** <faultstring>mandat inexistant.</faultstring>**
</S:Fault>
</S:Body>
</S:Envelope>