Dépenses
LeExpenseService (client.expenses) fournit des méthodes pour lister, créer, mettre à jour, supprimer et opérer en masse sur les dépenses. Les dépenses représentent les reçus et transactions capturées au sein d’une entreprise.
Documentation Index
Fetch the complete documentation index at: /llms.txt
Use this file to discover all available pages before exploring further.
Référence complète du ExpenseService dans le SDK JavaScript Smartbills, lister, télécharger, mettre à jour, scinder, exporter et gérer les dépenses en masse.
ExpenseService (client.expenses) fournit des méthodes pour lister, créer, mettre à jour, supprimer et opérer en masse sur les dépenses. Les dépenses représentent les reçus et transactions capturées au sein d’une entreprise.
const { data: expenses, pagination } = await client.expenses.listBusiness({
page: 1,
limit: 25,
sortBy: 'createdAt',
sortDirection: 'desc',
});
console.log(`Page ${pagination.currentPage} sur ${pagination.pageCount}`);
console.log(`Total : ${pagination.count} dépenses`);
const { data } = await client.expenses.listEmployée(employéeId, {
limit: 50,
});
const { data: mesDépenses } = await client.expenses.listMy({
limit: 20,
});
const expense = await client.expenses.getById(expenseId);
console.log(expense.id, expense.amount, expense.vendor);
const updated = await client.expenses.update(expenseId, {
note: 'Diner client - Projet Alpha',
categoryId: 42,
});
const updated = await client.expenses.updateCategory(expenseId, {
categoryId: 15,
});
const updated = await client.expenses.updateNote(expenseId, {
note: 'Description mise à jour',
});
const updated = await client.expenses.updateReport(expenseId, {
expenseReportId: 789,
});
const result = await client.expenses.setReport(expenseId, {
expenseReportId: 789,
});
// Supprimer une dépense de l'entreprise
await client.expenses.delete(expenseId);
// Supprimer la dépense d'un employé
await client.expenses.deleteEmployée(employéeId, expenseId);
const formData = new FormData();
formData.append('files', fichierRecu1);
formData.append('files', fichierRecu2);
// Pour l'entreprise
const results = await client.expenses.uploadBusiness(formData);
// Pour un employé
const empResults = await client.expenses.uploadEmployée(employéeId, formData);
// Pour l'utilisateur courant
const myResults = await client.expenses.uploadMy(formData);
const formData = new FormData();
formData.append('files', fichierRecu);
await client.expenses.validateBusiness(formData);
await client.expenses.validateEmployée(employéeId, formData);
// Étape 1 : Obtenir une URL presignee
const presigned = await client.expenses.presignUpload({
fileName: 'reçu.pdf',
contentType: 'application/pdf',
fileSize: fileBuffer.byteLength,
});
// Étape 2 : Télécharger directement vers l'URL presignee
await fetch(presigned.url, {
method: 'PUT',
body: fileBuffer,
headers: { 'Content-Type': 'application/pdf' },
});
// Étape 3 : Confirmer le téléchargement
await client.expenses.confirmUpload({
key: presigned.key,
fileName: 'reçu.pdf',
});
const splitExpenses = await client.expenses.split(expenseId, {
lines: [
{ amount: 50.00, categoryId: 10, note: 'Repas' },
{ amount: 25.00, categoryId: 20, note: 'Transport' },
],
});
const blob = await client.expenses.export({
format: 'csv',
startDate: '2025-01-01',
endDate: '2025-03-31',
});
const { blob: file, filename } = await client.expenses.exportWithFilename({
format: 'xlsx',
});
// Pieces jointes de plusieurs dépenses
const zipBlob = await client.expenses.downloadAttachments({
expenseIds: [1, 2, 3],
});
// Piece jointe d'une seule dépense
const attachment = await client.expenses.downloadSingleAttachment(expenseId);
// Avec le nom de fichier
const { blob, filename } = await client.expenses.downloadSingleAttachmentWithFilename(expenseId);
const updated = await client.expenses.batchUpdate([
{ id: 1, categoryId: 10 },
{ id: 2, categoryId: 20 },
]);
const result = await client.expenses.bulkAssignCategory({
expenseIds: [1, 2, 3, 4],
categoryId: 15,
});
console.log(`Reussis : ${result.succèded}, Échoués : ${result.failed}`);
const result = await client.expenses.bulkAssignVendor({
expenseIds: [1, 2, 3],
vendorId: 42,
});
const result = await client.expenses.bulkAssignReport({
expenseIds: [1, 2, 3],
expenseReportId: 100,
});
const result = await client.expenses.bulkSetNote({
expenseIds: [1, 2, 3],
note: 'Reunion équipe T1',
});
const result = await client.expenses.bulkDelete({
expenseIds: [10, 11, 12],
});
| Méthode | Paramètres | Retour |
|---|---|---|
listBusiness | params?, options? | SBListResponse<SBTransaction> |
listEmployée | employéeId, params?, options? | SBListResponse<SBTransaction> |
listMy | params?, options? | SBListResponse<SBTransaction> |
getById | expenseId, options? | SBTransaction |
update | expenseId, data, options? | SBTransaction |
delete | expenseId, options? | void |
deleteEmployée | employéeId, expenseId, options? | void |
updateCategory | expenseId, data, options? | SBTransaction |
updateNote | expenseId, data, options? | SBTransaction |
split | expenseId, data, options? | SBTransaction[] |
uploadBusiness | formData, options? | SBTransactionUploadResponse[] |
uploadEmployée | employéeId, formData, options? | SBTransactionUploadResponse[] |
uploadMy | formData, options? | SBTransactionUploadResponse[] |
export | data, options? | Blob |
presignUpload | request, options? | PresignedUploadResponse |
confirmUpload | request, options? | void |
bulkAssignCategory | data, options? | SBExpenseBulkActionResponse |
bulkAssignVendor | data, options? | SBExpenseBulkActionResponse |
bulkAssignReport | data, options? | SBExpenseBulkActionResponse |
bulkDelete | data, options? | SBExpenseBulkActionResponse |
Cette page vous a-t-elle été utile ?