Envoyer un document par email
Pour envoyer un document (facture, devis, pièce jointe) vous devez utiliser l'endpoint /apps/:appId/email/document.
var myHeaders = new Headers();
myHeaders.append("Authorization", "Bearer <token>");
myHeaders.append("Content-Type", "application/json");
var raw = JSON.stringify({
"title": "Titre de mon email",
"body": "Contenu de mon email",
"from": "[email protected]",
"documents": [
{
"type": "invoice", // Types : invoice ou quote ou attachment
"id": "1" // ID de votre attachment (facture, devis ou pièce jointe)
}
],
"recipients": [
"[email protected]",
"[email protected]",
"[email protected]"
],
"recipients_cc": [
"[email protected]",
"[email protected]"
],
"recipients_bcc": [
"[email protected]",
"[email protected]"
]
});
var requestOptions = {
method: 'POST',
headers: myHeaders,
body: raw,
redirect: 'follow'
};
fetch("https://api.sinao.app/v1/apps/:appId/email/document", requestOptions)
.then(response => response.text())
.then(result => console.log(result))
.catch(error => console.log('error', error));Pour ajouter des fichiers joints à cet email, vous devez suivre les étapes suivantes :
- Créer un
attachment - L'ajouter à la liste des documents à joindre dans l'array de la clé
documentsdubody
lister les attachements
Si votre fichier a déjà été ajouté aux attachments, inutile de le renvoyer, seuls son id et type sont à ajouter à la requête
pour lister vos attachments, il faut envoyer la requête
var myHeaders = new Headers();
myHeaders.append("Authorization", "Bearer <token>");
myHeaders.append("Content-Type", "application/json");
var requestOptions = {
method: 'GET',
headers: myHeaders,
redirect: 'follow'
};
fetch("https://api.sinao.app/v1/apps/:appId/attachments", requestOptions)
.then(response => response.text())
.then(result => console.log(result))
.catch(error => console.log('error', error));la réponse sera :
{"data":[
{"id":1,
"name":"attestation-simplifiee-tva-10.pdf",
"attachable_id":null,
"type":"none",
"email_sent_at":null,
"created_at":"2026-01-06T14:38:19.000000Z","updated_at":"2026-01-06T14:38:19.000000Z"
},{
"id":2,
"name":"F740.EVRD.407.pdf",
"attachable_id":1,
"type":"invoice",
"email_sent_at":null,
"created_at":"2026-01-08T15:03:15.000000Z","updated_at":"2026-01-08T15:03:15.000000Z"}
]Vous prendrez donc l'id et le type de l'attachment à joindre.
Ajouter un attachment à la facture id #5
var myHeaders = new Headers();
const formData = new FormData();
formData.append("file", myFileInput.files[0]);
// type d'attachment possible
const available_types = [
"invoice",
"quote",
"purchase",
]
myHeaders.append("Authorization", "Bearer <token>");
myHeaders.append("Content-Type", "application/json");
var requestOptions = {
method: 'POST',
headers: myHeaders,
redirect: 'follow',
type: available_types[0],
attachable_id: 5 // id de la facture,
is_multipart: true,
body : formData
};
fetch("https://api.sinao.app/v1/apps/:appId/attachments", requestOptions)
.then(response => response.text())
.then(result => console.log(result))
.catch(error => console.log('error', error));exemple postman :
la réponse sera
{
"type": "invoice",
"attachable_id": 1,
"name": "Invoice-B0860FF7-0033.pdf",
"id": 3
}Vous pouvez maintenant ajouter cet attachment id = 3 en fichier joint via la clé documents
var myHeaders = new Headers();
myHeaders.append("Authorization", "Bearer <token>");
myHeaders.append("Content-Type", "application/json");
var raw = JSON.stringify({
"title": "Titre de mon email",
"body": "Contenu de mon email",
"from": "[email protected]",
"documents": [
{
"type": "invoice", // Types : invoice ou quote ou attachment
"id": 3 // ID de votre attachment (facture, devis ou pièce jointe)
}
],
"recipients": [
"[email protected]",
"[email protected]",
"[email protected]"
],
"recipients_cc": [
"[email protected]",
"[email protected]"
],
"recipients_bcc": [
"[email protected]",
"[email protected]"
]
});
var requestOptions = {
method: 'POST',
headers: myHeaders,
body: raw,
redirect: 'follow'
};
fetch("https://api.sinao.app/v1/apps/:appId/email/document", requestOptions)
.then(response => response.text())
.then(result => console.log(result))
.catch(error => console.log('error', error));Updated 8 days ago