Aller au contenu principal

Mise à jour d'un modèle

Ce service permet de mettre à jour les modèles personnalisés qui pourront ensuite être utilisés pour remplir des documents à signer.

PUT/templateclé privéeprk_

Authentification​

Incluez votre clé privée dans l'en-tête Authorization.

Authorization: prk_xxx...

Paramètres de mise à jour​

NomTypeDescription
idString obligatoireIdentifiant du modèle.
nameString obligatoireNom de l'automatisation.
descriptionString facultatifTexte décrivant le modèle, jusqu'à 500 caractères.
configArray obligatoireTableau de questions pour l'utilisateur. Voir Configuration JSON.
signatureProfileArray obligatoireDéfinition des signataires et des approbateurs. Voir Profils de signature.
signArray obligatoireNoms des questions obligatoires.
preBuildBoolean facultatifSi true, inclut le pré-remplissage automatique.
Envoyez le modèle complet

PUT /template valide le corps de la même manière que POST /template : name, config, sign et signatureProfile sont obligatoires même s'ils ne changent pas, et l'API répond 400 s'il en manque un. La méthode la plus sûre consiste à partir de ce que renvoie GET /template?id=, à modifier ce dont vous avez besoin, puis à le renvoyer sans urls, que l'API n'accepte pas en écriture.

description est conservée si vous ne l'envoyez pas

Omettre description dans le PUT n'efface pas la description que le modèle possède déjà : la précédente est conservée. Pour la modifier, envoyez le nouveau texte — jusqu'à 500 caractères, sinon l'API répond 400.

Une description enregistrée ne peut pas être effacée

Il n'existe aujourd'hui aucun moyen de laisser un modèle sans description une fois qu'il en possède une : la validation rejette aussi bien la chaîne vide ("") que null, et omettre le champ conserve la valeur précédente. Si vous avez besoin que le texte cesse d'être affiché, remplacez-le par le texte approprié.

Exemples de mise à jour​

curl -X PUT https://api.auco.ai/v1.5/ext/template \
-H "Content-Type: application/json" \
-H "Authorization: prk_private_key_company" \
-d '{
"id": "64823dc5ce28a265e02d68f3",
"name": "Modification des variables du document de test",
"description": "Contrat de service avec un seul signataire, pour l'équipe commerciale",
"config": [
{
"name": "new_question",
"type": "name",
"description": "Exemple de nouvelle question"
},
{
"name": "client_name",
"type": "name",
"description": "Saisissez le nom du client"
},
{
"description": "Sélectionnez le type de document du client",
"name": "client_document_type",
"type": "clausula",
"value": "id_card",
"options": [
{
"name": "Carte nationale d'identité",
"value": "id_card"
},
{
"name": "Pièce d'identité étrangère",
"value": "foreign_id"
}
]
},
{
"description": "Saisissez le numéro de la carte nationale d'identité du client",
"name": "client_id_card",
"type": "number",
"prereq": [
{
"k": "client_document_type",
"v": "id_card"
}
]
},
{
"description": "Saisissez le numéro de la pièce d'identité étrangère du client",
"name": "client_foreign_id",
"type": "number",
"prereq": [
{
"k": "client_document_type",
"v": "foreign_id"
}
]
},
{
"name": "client_email",
"type": "email",
"description": "Saisissez l'e-mail du client"
},
{
"name": "client_phone",
"type": "phone",
"description": "Saisissez le téléphone du client"
}
],
"sign": [
"client_name",
"client_id_card",
"client_foreign_id",
"client_email",
"client_phone",
"new_question"
],
"signatureProfile": [
{
"email": "client_email",
"phone": "client_phone",
"identification": "client_id_card|client_foreign_id",
"name": "client_name",
"type": "client"
}
]
}'

Exemple de réponse​

{
"urls": {
"mask": "https://signed_url_mask",
"complete": "https://signed_url_complete"
}
}

Téléversement du HTML complet et du HTML masque :​

Vous devrez téléverser de nouveau les fichiers HTML. Dans la réponse du service de mise à jour, vous trouverez deux URL signées, une pour chaque HTML. Elles ont une durée de vie de 120 secondes : passé ce délai, elles ne sont plus valides. Préparez les fichiers HTML complet et HTML masque avant de mettre à jour le modèle, puis téléversez chacun d'eux, tel quel, dans une requête PUT vers son URL.

Téléversez avec Content-Type: binary/octet-stream

Les URL sont signées pour ce type de contenu : si vous en envoyez un autre —par exemple text/html—, le téléversement est rejeté. Envoyez le fichier sans le transformer : avec curl, utilisez --data-binary et non -d, qui supprime les sauts de ligne.

# Upload HTML Mask
curl -X PUT https://signed_url_mask \
-H "Content-Type: binary/octet-stream" \
--data-binary @mask.html

# Upload HTML Complete
curl -X PUT https://signed_url_complete \
-H "Content-Type: binary/octet-stream" \
--data-binary @complete.html
Les URL expirent au bout de 120 secondes

Si elles expirent avant que vous ayez téléversé les fichiers, appelez de nouveau PUT /template : chaque appel renvoie de nouvelles URL.

Ignorer le téléversement si le HTML n'a pas changé

Si vous ne mettez à jour que config, sign ou signatureProfile et que le HTML est inchangé, vous pouvez ignorer les URL renvoyées et sauter complètement le téléversement. Le serveur conservera les HTML de la version précédente.


⚠️ Réponses d'erreur​

Les erreurs sont accompagnées du corps { "message": "..." }.

CodeDescription
400Corps invalide ou modèle introuvable : DOCUMENT_NOT_FOUND (l'id ne correspond à aucun modèle de votre organisation), PAYLOAD_NOT_VALID (le corps n'est pas du JSON), PROFILE_FIELD_NOT_FOUND: <field> (l'email ou le phone d'un signataire n'est ni une question de config ni un champ de preFill), PROFILE_FIELD_TYPE_INVALID: <field> must be type <type> (il pointe vers une question d'un autre type), ou le message du validateur
401Authentification invalide ou absente

Le message du validateur nomme le champ en erreur, par exemple "signatureProfile" is required, "config[0].maxLength" is not allowed ou "signatureProfile[0].name" must be a string. Consultez les règles de chaque champ dans Configuration JSON.

Modèles antérieurs à la validation des signataires

La validation de email et phone dans signatureProfile est plus récente que de nombreux modèles. Un modèle qui se remplit encore sans problème peut être rejeté par le PUT avec PROFILE_FIELD_TYPE_INVALID, presque toujours parce que l'e-mail du signataire est demandé avec une question de type text. Changez le type de cette question en email dans le même PUT.