Une fois la transaction effectuée, il est facile de récupérer son résultat, et d'accéder à tous les détails et documents afférents.
Récupération des informations du contrat
https://[host]/calinda/hub/selling/model/contract/read?action=getContract&contract_id=[id du contrat]
Résultat (contrat qui a été signé à distance par mail, dont on retrouve le sujet et le corps ici) :
{"id":18827, // id du contrat
"date":1456299951109,
"documentToken":"MtqsdfssMDA3OTQ3MF8xODA1Ml84MTA1OTYu003d",
"vendorEmail":"vendeur@votreentreprise.com",
"closed":true,
"transactionId":"2c969e2b52a819ad01531240f5bf7b38",
// identifiant de la transaction chez tiers de confiance
"status":"ARCHIVED",
"customerEntityId":0,
"contractDefinitionId":86,
"customerNumber":"4xNDU2Mjk5MjYyMzU1LjU1OTQw",
"syncTimer":1456762870396,
"messageTitle":"Proposition Sellu0026Sign à distance",
"messageBody":"Bonjour,u003cbr/u003eu003cbr/u003eComme convenu voici ma proposition pour équiper tes équipes de 6 licences Sellu0026Sign à distance.u003cbr/u003eu003cbr/u003eTu peux signer électroniquement cette proposition en cliquant sur le bouton "signer le document" ci-dessous.u003cbr/u003eu003cbr/u003eBien à toi,u003cbr/u003eu003cbr/u003e",
"filename":"Proposition_SellSign_1.0_240216.pdf",
"keepOnMove":0}
Et voilà ! Le contrat et tous ses documents sont à présent disponibles dans votre Backoffice SELL&SIGN.
Il est également aisé de récupérer par API les éléments liés au contrat.
Récupération du document signé
https://[host]/calinda/hub/selling/do?m=getSignedContract&contract_id=[id du contrat]
Le résultat est un fichier binaire de type de contenu application/pdf. Si le contrat n'est pas encore prêt, le serveur peut retourner une erreur 500 avec un message précisant que le contrat n'est pas encore disponible.
Récupération du document PDF quelque soit le statut du contrat
https://[host]/calinda/hub/selling/do?m=getCurrentDocumentForContract&id=[id du contrat]
Le résultat est un fichier binaire de type de contenu application/pdf.
Récupération du dossier de preuve
https://[host]/calinda/hub/selling/do?m=getEvidences&contract_id=[id du contrat]
Le résultat est un fichier binaire de type de contenu application/zip. Si le dossier de preuve n'est pas encore disponible, un erreur 500 est retournée avec un message indiquant l'état.
La structure du fichier zip est la suivante :
/fichier pdf
/fichier xml de preuves
/pieces/piece jointe 1
/pieces/piece jointe ...
/pieces/fichier json contenant les informations recueillies sur l'équipement mobile ayant généré le contrat si celui ci a été réalisé 'offline'
Récupération des pièces jointes d'un contrat
Il faut tout d'abord lister les pièces jointes pour un contrat
https://[host]/calinda/hub/selling/model/picture/list?action=getPicturesForContract&contract_id=[id du contrat]
On obtient en résultat une liste de pièces jointe :
{"elements":[{"id":15,"optionId":603,"lastModificationDate":1468240073319,"imageToken":"MTQ2ODI0MDA3MzMwMF82MDNfNTIxNDY=","lastModificationPlace":"SERVER","name":"B61jolYIQAANbJv.png","contentType":"image\/png"},{"id":14,"optionId":603,"lastModificationDate":1468240070442,"imageToken":"MTQ2ODI0MDA3MDQzMl82MDNfOTY4MzYw","lastModificationPlace":"SERVER","name":"Milkyway-and-Earth_www.FullHDWpp.com_.jpg","contentType":"image\/jpeg"}],"totalSize":2}
A partir de l'attribut 'imageToken', il est possible de télécharger le contenu de la pièce en appelant :
https://[host]/calinda/hub/selling/do?m=loadPicture&image_token=[le token extrait de la liste]
Récupération des états de signature d'un contrat
POST https://<service-url>/calinda/hub/selling/model/contractorstatus/list?action=loadContractorsStatusForContractDashboard
Cette méthode vous permet de parcourir la liste des signataires, vous devrez donc spécifier un offset et une taille pour définir votre sous liste retournée.
On obtient une liste d'état des signatures du contrat sous la forme :
{
"contract_id": "[contract id]",
"keyword":"[keyword to search a contractor by firstname/lastname/email]",
"status":"[the state of the signature NONE / SENT / SIGNED]",
“offset” : [offset],
“size”: [size]
}
On obtient une liste d'état des signatures du contrat sous la forme :
{"elements":[{"contractId":120,"signatureMode":7,"signatureStatus":"SENT","signatureId":"","signatureDate":0,"lastSignDateCheck":1579875400254,"lastSignPlaceCheck":"SERVER","contractorForContractId":7961,"rank":0,"messageTitle":"","messageBody":"","id":2514,"customerNumber":"MTQ2Mi4xNTc5ODcyMjk1MjA3LjQyODk3","civility":"MONSIEUR","firstname":"A","lastname":"Y","email":"addremail@email.com","address1":"1 rue neuve","postalCode":"13001","city":"Marseille","syncTimer":1579877412186,"lastModificationPlace":"SERVER","companyName":"MYCOMP","isDefault":0,"country":"France","cellPhone":"0123456789","birthdate":0,"actorId":1522,"localisation":"fr_FR"},{"contractId":120,"signatureMode":3,"signatureStatus":"SIGNED","signatureId":"116080383","signatureDate":1579877179372,"lastSignDateCheck":1579877179372,"lastSignPlaceCheck":"SERVER","contractorForContractId":795,"rank":1,"messageTitle":"","messageBody":"","refusal":{"id":103,"contractorsForContractId":795,"message":"NON C'EST NON","refusalDate":1579876170998,"acknowledgedFlag":0,"comment":"","contractId":120,"lastModificationDate":1579876170998,"lastModificationPlace":"SERVER"},"id":2513,"customerNumber":"MTQ2Mi4xNTc5ODcyMjk1MjA3LjQyODk3","civility":"MONSIEUR","firstname":"A","lastname":"M","phone":"","email":"anotheremail@email.com","address1":"1 rue du bord de mer","address2":"","postalCode":"13001","city":"Marseille","syncTimer":1579877412280,"lastModificationPlace":"SERVER","companyName":"MY COMP","isDefault":1,"country":"France","cellPhone":"0123456789","jobTitle":"","registrationNumber":"","birthdate":0,"birthplace":"","actorId":9,"localisation":"fr_FR"}],"totalSize":2}
Gestion des refus de signature
Récupérer un refus de signature
Permet de récupérer les détails d'un refus de signature à partir de son id.
POST/GET https://cloud.sellandsign.com/calinda/hub/selling/model/refusal/read?action=getRefusal
Request Format: JSON (contentType: application/json;charset=utf-8)
Request Structure: { "id": [refusal id] }
Response Format: JSON
Response Structure: {"id":162,"contractorsForContractId":7750,"message":"test","refusalDate":1000000000000,"comment":"truc","contractId":8267,"lastModificationDate":1576596935744,"lastModificationPlace":"SERVER"}
GET example
https://cloud.sellandsign.com/calinda/hub/selling/model/refusal/read?action=getRefusal&id=162
Récupérer le dernier refus d'un signataire
Permet de récupérer le refus de signature le plus récent pour un signataire sur un contrat (via le contractors_for_contract id).
POST/GET https://cloud.sellandsign.com/calinda/hub/selling/model/refusal/read?action=getLastRefusal
Request Format: JSON (contentType: application/json;charset=utf-8)
Request Structure: { "contractors_for_contract_id": [signature id] }
Response Format: JSON
Response Structure: {"id":164,"contractorsForContractId":7750,"message":"test","refusalDate":2876596935744,"acknowledgedFlag":2,"comment":"otherthings","contractId":8267,"lastModificationDate":1576661782652,"lastModificationPlace":"SERVER"}
GET example
https://cloud.sellandsign.com/calinda/hub/selling/model/refusal/read?action=getLastRefusal&contractors_for_contract_id=7750
Récupérer tous les refus d'un signataire
Permet de récupérer tous les refus de signature pour un signataire sur un contrat (via le contractors_for_contract id). Les résultats peuvent être découpés par un offset et une taille.
POST/GET https://cloud.sellandsign.com/calinda/hub/selling/model/refusal/read?action=getRefusals
Request Format: JSON (contentType: application/json;charset=utf-8)
Request Structure: {
"contractors_for_contract_id": [signature id],
“offset” : [offset],
“size”: [size]
}
Response Format: JSON
Response Structure:
{
"elements": [
{ "id": 164,"contractorsForContractId": 7750,"message": "test","refusalDate": 2876596935744,"acknowledgedFlag": 2,"comment": "otherthings","contractId": 8267,"lastModificationDate": 1576661782652,"lastModificationPlace": "SERVER"},
{ "id": 163,"contractorsForContractId": 7750,"message": "test","refusalDate": 1876596935744,"acknowledgedFlag": 1,"comment": "truc","contractId": 8267,"lastModificationDate": 1576598255068,"lastModificationPlace": "SERVER"},
…,
{"id": 171,"contractorsForContractId": 7750,"message": "why","refusalDate": 1000000000000,"acknowledgedFlag": 1,"comment": "something","contractId": 8267,"lastModificationDate": 1576662581684,"lastModificationPlace": "SERVER"}
],
"totalSize": 5
}
GET example
https://cloud.sellandsign.com/calinda/hub/selling/model/refusal/read?action=getRefusals&contractors_for_contract_id=7750
Récupérer les derniers refus de signature pour un contrat
Permet de récupérer les derniers refus de signature pour un contrat ( identifié par son contract id), dans l'ordre chronologique inverse. Les résultats peuvent être découpés par un offset et une taille.
POST/GET https://cloud.sellandsign.com/calinda/hub/selling/model/refusal/read?action=getLastRefusalsByContract
Request Format: JSON (contentType: application/json;charset=utf-8)
Request Structure:
{
"contract_id": [contract id],
“offset” : [offset],
“size”: [size]
}
Response Format: JSON
Response Structure:
{
"elements": [
{ "id": 164,"contractorsForContractId": 7750,"message": "test","refusalDate": 2876596935744,"acknowledgedFlag": 2,"comment": "otherthings","contractId": 8267,"lastModificationDate": 1576661782652,"lastModificationPlace": "SERVER"},
{ "id": 163,"contractorsForContractId": 7750,"message": "test","refusalDate": 1876596935744,"acknowledgedFlag": 1,"comment": "truc","contractId": 8267,"lastModificationDate": 1576598255068,"lastModificationPlace": "SERVER"},
…,
{"id": 171,"contractorsForContractId": 7750,"message": "why","refusalDate": 1000000000000,"acknowledgedFlag": 1,"comment": "something","contractId": 8267,"lastModificationDate": 1576662581684,"lastModificationPlace": "SERVER"}
],
"totalSize": 5
}
GET example
https://cloud.sellandsign.com/calinda/hub/selling/model/refusal/read?action=getLastRefusalsByContract&contract_id=81