Main Documents
Envoi d'un document dans le parapheur
Route
POST /rest/documents
Paramètres
Body
Valeur |
Type |
Obligatoire |
Description |
title |
string |
Oui |
Titre du document |
reference |
string |
Non |
Référence du document |
description |
string |
Non |
Description du document |
encodedDocument |
base64 |
Oui |
Fichier PDF compressé au format zip encodé en base64 |
sender |
string |
Oui |
Prénom Nom de l'expéditeur |
deadline |
date |
Non |
Date limite de traitement du document |
notes |
array |
Non |
Note du document Exemple : '{"value":"Ceci est mon sang", "creator": "J-C", "creationDate": "10-04-2020"}' |
linkId |
string |
Non |
Identifiant de liaison |
workflow |
array |
Oui |
Circuit du document |
attachments |
array |
Non |
Pièces jointes liées au document. Exemple : '[{"title":"test", "encodedDocument": "REUGFMLLlpxjeoikjcxoe668v"}]' |
metadata |
array |
Non |
Données additionelles affichées dans l'interface. Exemple : '{"Entité émettrice" : "DGA", "Destinataire" : "M. Macron", "Priorité" : "Urgent"}' |
Le tableau workflow peut contenir 1 à N personnes. Chaque personne du circuit représente une case de ce tableau.
Chaque case doit contenir une chaîne de caractères 'processingUser' contenant le login de l'utilisateur ainsi qu'une chaîne de caractères 'mode' égale à 'visa', 'sign' ou 'note'.
Ce mode est juste présent à titre indicatif pour savoir si la personne doit viser, signer ou annoter le document.
Le tableau attachments peut contenir 1 à N pièces jointes. Chaque pièce jointe représente une case de ce tableau.
Exemple
{
"title" : "Réponse pétition",
"reference" : "2019/REF/1",
"description" : "Pétition sur l'écologie",
"encodedDocument": "JVBERi0xLjQgLi4u",
"sender" : "Nicolas Hulot",
"deadline" : "2019-02-25",
"notes" : {
"value" : "Veuillez signer ce document au plus vite",
"creator" : "S Stallone",
"creationDate" : "25-12-2019"
},
"linkId" : "azertyuiopmlkjhgdsqwxcvbn",
"workflow" : [
{
"processingUser" : "jjane@maarch.com",
"mode" : "visa"
},
{
"processingUser" : "PN256789",
"mode" : "sign"
}
],
"attachments" : [
{
"title" : "Attestation des fonds marins",
"encodedDocument" : "deJOIJKiSDYUIfolpcdm",
"reference": "MAARCH/2019A/21"
},
{
"title" : "Falsification des données de pêche",
"encodedDocument" : "REUGFMLLlpxjeoikjcxoe668v"
}
],
"metadata" : {
"Entité émettrice" : "DGA",
"Destinataire" : "M. Macron",
"Priorité" : "Urgent"
}
}
Retour
Code Http |
Type |
Description |
Exemple |
200 |
array |
Le document a bien été créé |
['id' => 123] |
400 |
array |
Un paramètre obligatoire est manquant |
['errors' => '...'] |
500 |
array |
Une erreur s'est produite |
['errors' => '...'] |
Récupération du circuit d'un document
Route
GET /rest/documents/{id}/workflow
Le paramètre id de la route représente l'identifiant (int) du document
Retour
Code Http |
Type |
Description |
200 |
array |
Circuit du document |
400 |
array |
Message d'erreur |
403 |
array |
Document hors périmètre |
Données
Valeur |
Type |
Description |
userId |
int |
Identifiant technique de l'utilisateur |
userDisplay |
string |
Libéllé de l'utilisateur |
mode |
string |
Mode dans le ciruit ('note', 'visa' ou 'sign') |
order |
int |
Place de l'utilisateur dans le circuit |
status |
string |
Status après action ('VAL', 'REF' ou 'END') |
note |
string |
Note |
processDate |
date |
Date de l'action |
Exemple
{
"workflow": [
{
'userId' : 1,
'userDisplay' : 'Jenny Jane',
'mode' : 'visa',
'order' : 1,
'status' : 'VAL',
'note' : '',
'processDate' : '20-06-2019 17:22'
},
{
'userId' : 2,
'userDisplay' : 'Jackie Jane',
'mode' : 'sign',
'order' : 2,
'status' : 'REF',
'note' : 'Opération annulée',
'processDate' : '20-06-2019 17:47'
}
]
}
Route
GET /rest/documents/{id}
Le paramètre id de la route représente l'identifiant (int) du document
Retour
Code Http |
Type |
Description |
200 |
array |
Informations du document |
400 |
array |
Message d'erreur |
Données
Valeur |
Type |
Description |
id |
int |
Identifiant technique du document |
title |
string |
Titre du document |
reference |
string |
Référence externe du document |
description |
string |
Description du document |
notes |
array |
Note attaché au document |
sender |
string |
Prénom Nom de l'expéditeur |
creationDate |
date |
Date de création du document |
modificationDate |
date |
Date de dernière modification du document |
pages |
int |
Nombre de pages du document |
deadline |
date |
Date limite de traitement du document |
workflow |
array |
Tableau contenant le circuit du document |
attachments |
array |
Tableau décrivant les pièces jointes au document |
metadata |
array |
Données additionelles du document |
linkedDocuments |
array |
Identifiant des documents auquel est lié ce document |
Exemple
{
"document": {
"id": 1,
"title": "Réponse pétition",
"reference": "2019/REF/1",
"description": "Pétition sur l'écologie",
"sender": "Nicolas Hulot",
"notes": null,
"creationDate": "2019-01-05 17:12:10.049202",
"modificationDate": "2019-01-06 17:12:10.049202",
"pages" : 2,
"deadline": "2019-03-05",
"workflow": [
{
"userId": 1,
"userDisplay": "Jenny JANE",
"mode": "sign",
"processDate": null,
"current": true
},
{
"userId": 155,
"userDisplay": "Charlotte CHARLES",
"mode": "visa",
"processDate": null,
"current": false
}
],
"attachments": [
{
"id": 295,
"title": "summarySheet.pdf",
"pages": 1
}
],
"metadata": [
{
"label": "Priorité",
"value": "Normal"
},
{
"label": "Entité initiatrice",
"value": "Pôle Jeunesse et Sport"
}
],
"linkedDocuments": []
}
}
Récupération d'un document (PDF)
Route
GET /rest/documents/{id}/content
Le paramètre id de la route représente l'identifiant (int) du document
Retour
Code Http |
Type |
Description |
200 |
array |
Document encodé en base 64 |
400 |
array |
Message d'erreur |
Données
Valeur |
Type |
Description |
encodedDocument |
base64 |
Document encodé en base64 |
Exemple
{
"encodedDocument": "JVBERi0x..."
}
Récupération de l'historique d'un document
Route
GET /rest/documents/{id}/history
Le paramètre id de la route représente l'identifiant (int) du document
Retour
Code Http |
Type |
Description |
200 |
array |
Informations du document |
400 |
array |
Message d'erreur |
403 |
array |
Document hors périmètre |
Données
Valeur |
Type |
Description |
code |
string |
Code du message: OK ou KO |
user |
array |
Informations concernant l'utilisateur ayant fait l'action |
date |
date |
Date de l'action |
type |
string |
Type d'action effectuée |
message |
string |
Message de l'action |
data |
array |
Informations complémentaires concernant l'action |
document |
array |
Informations concernant le document (seulement pour une action de validation d'un signataire) |
Exemple
{
"history": [
{
"code": "OK",
"type": "CREATION",
"user": {
"id": 2,
"email": "ccornillac@maarch.com",
"firstname": "Clovis",
"lastname": "CORNILLAC",
"ip": "10.2.3.4"
},
"date": "19-03-2020 15:50",
"message": "Pièce jointe ajoutée : summarySheet.pdf",
"data": {
"mainDocumentId": 250
}
},
{
"code": "OK",
"type": "CREATION",
"user": {
"id": 2,
"email": "ccornillac@maarch.com",
"firstname": "Clovis",
"lastname": "CORNILLAC",
"ip": "10.2.3.4"
},
"date": "19-03-2020 15:50",
"message": "Document ajouté : fsdfdssdsd",
"data": []
},
{
"code": "OK",
"type": "VIEW",
"user": {
"id": 1,
"email": "jjane@maarch.com",
"firstname": "Jenny",
"lastname": "JANE",
"ip": "10.2.3.5"
},
"date": "24-03-2020 12:56",
"message": "Document consulté : fsdfdssdsd",
"data": []
},
{
"code": "OK",
"type": "ACTION",
"user": {
"id": 1,
"email": "jjane@maarch.com",
"firstname": "Jenny",
"lastname": "JANE",
"ip": "10.2.3.5"
},
"date": "24-03-2020 12:56",
"message": "Action effectuée : VAL",
"data": {
"actionId": 1,
"mode": "sign"
},
"document": {
"filename": "0013_1634265441.pdf",
"fingerprint": "9e697268b30a00da4347be2a24150d08308eb59d9309b47c8e437957d6ccb0df6de3daf5c5ec19e714f03e707a8a891574144b8a09b43a9398b55edb49b3ca5c",
"mimeType": "application/pdf",
"certificate": "subject=C = FR, ST = France, L = Nanterre, O = Maarch, OU = Maarch, CN = Maarch Parapheur, emailAddress = info@maarch.org\n\nissuer=C = FR, ST = France, L = Nanterre, O = Maarch, OU = Maarch, CN = Maarch Parapheur, emailAddress = info@maarch.org\n\n-----BEGIN CERTIFICATE-----\nMIIDpTCCAo0CFACXbEZoY0QvFPRAiprffUC/0KHVMA0GCSqGSIb3DQEBCwUAMIGO\nMQswCQYDVQQGEwJGUjEPMA0GA1UECAwGRnJhbmNlMREwDwYDVQQHDAhOYW50ZXJy\nZTEPMA0GA1UECgwGTWFhcmNoMQ8wDQYDVQQLDAZNYWFyY2gxGTAXBgNVBAMMEE1h\nYXJjaCBQYXJhcGhldXIxHjAcBgkqhkiG9w0BCQEWD2luZm9AbWFhcmNoLm9yZzAe\nFw0xOTA0MjUxNTUzMTBaFw0yOTA0MjIxNTUzMTBaMIGOMQswCQYDVQQGEwJGUjEP\nMA0GA1UECAwGRnJhbmNlMREwDwYDVQQHDAhOYW50ZXJyZTEPMA0GA1UECgwGTWFh\ncmNoMQ8wDQYDVQQLDAZNYWFyY2gxGTAXBgNVBAMMEE1hYXJjaCBQYXJhcGhldXIx\nHjAcBgkqhkiG9w0BCQEWD2luZm9AbWFhcmNoLm9yZzCCASIwDQYJKoZIhvcNAQEB\nBQADggEPADCCAQoCggEBAL3Xh43uVEaCpEdWWZ2RsmDyEuyqTArGX78JiAgcCvKW\nHt38KekplCXM3hi0JswV4Y2FQAjm5nIDilsNzoEBsJQ7LYb+hzwWhd6VZLDWIDWo\n0e7BwypobSyNKq9amc9NYeo305YH57mSWxZ5bXMY0zi0hOhK2gxptBPOxa+MSbh6\n2tv43/IrAwaVWaqJxWmSz98K4qRUmFaYZgaxDf8Ei6IzGYrIExxwCJVnktBmmoQj\ncqkecLMts1ZNgxbyJt1hvDN/2OhRX619ELQZO+P4BtS5x1QWvjtvLTEtET4RBAen\nsrs95kj98AJd2bxV+h0t5EhiLGYJtXFDmDGjIAk2+qUCAwEAATANBgkqhkiG9w0B\nAQsFAAOCAQEAeiWPQ1iWqT9YQYOXEcLOwSpXjXi/9FD8+2uMf3mEIHC0yhutI7lZ\nnLNJSYrCaS90HukOHdwdbvF877sd/1XK5fTgl74gASMHrSQNb5McW4zcIrkCT9Qt\nY/C9wgtYQ6GDcyo6PGfNO53j3RbWUdwlpozDtya45YN7zhv6aE190qSwQdZosQcg\nlLeOkTAz6E+e4bHhb/UHfxUQJZRqG7vF+eSon+DePnotlq0XWVLcE633T2ClJ4AV\nc6bFWemUYL8lBNIag99gifmv8tEoiUWDJ+Uag7rFPk2i9WEynnC3ClIUGctpsgdY\nvwGtPCqZDhv+XKX+ukMYvvAHhnRUcDS7XA==\n-----END CERTIFICATE-----\n\n"
}
}
]
}