Portail interne des API – OLI Liberia.
Liste des endpoints Flask détectés automatiquement via
app.url_map.
📊 Récupérer les statistiques pour le dashboard de la comptabilité Accessible par: ACCOUNTING_VIEWER, ADMIN, SUPER_ADMIN Réponse: Statistiques sur les soumissions
📥 Récupérer tous les documents d'une soumission en base64 Accessible par: ACCOUNTING_VIEWER, ADMIN, SUPER_ADMIN Réponse: Tous les documents de la soumission en base64
📝 Ajouter ou mettre à jour les notes comptables sur une soumission Body: { "data": { "notes": "Documents vérifiés, tout est conforme" } }
🔍 Récupérer le statut comptable d'une soumission Accessible par: ACCOUNTING_VIEWER, ADMIN, SUPER_ADMIN Réponse: Statut détaillé de la soumission
📋 Récupérer la liste des soumissions pour la comptabilité Accessible par: ACCOUNTING_VIEWER, ADMIN, SUPER_ADMIN Body: { "filters": { "status": "pending", // "pending", "downloaded", "all" "department_id": 3, "from_date": "2026-01-01", "to_date": "2026-12-31", "search": "INV-2025" }, "include_documents": true, // Inclure les documents en base64 "index": 0, "size": 20 } Réponse: Soumissions avec documents en base64
✅ Marquer une soumission comme téléchargée/traitée par la comptabilité Body: { "data": { "submission_id": 1, "notes": "Documents vérifiés et archivés", // Optionnel "mark_as_paid": false // Optionnel - si true, change le statut en PAID } } Réponse: Soumission mise à jour avec les documents en base64
Récupère les départements depuis notre base de données locale (synchronisée avec HRIS)
Aucune description (ajoute un docstring à la vue).
✅ Créer une ou plusieurs étapes d'approbation Accessible par: ADMIN, SUPER_ADMIN Body: { "datas": [ { "name": "DEPARTMENT_REVIEW", "step_order": 1, "is_active": true } ] }
🗑️ Supprimer (soft delete) une ou plusieurs étapes d'approbation Body: { "datas": [ { "id": 1 } ] }
⚡ Récupérer toutes les étapes d'approbation actives (utilisé par le workflow à la création d'une soumission)
📋 Lister/rechercher les étapes d'approbation Body: { "data": { "search_string": "DEPARTMENT", "is_active": true }, "index": 0, "size": 20 }
🔍 Récupérer une étape d'approbation par ID Body: { "data": { "id": 1 } }
🔄 Réorganiser l'ordre des étapes d'approbation Body: { "data": { "steps": [ {"id": 3, "step_order": 1}, {"id": 1, "step_order": 2}, {"id": 2, "step_order": 3} ] } }
🔄 Activer/désactiver une étape d'approbation Body: { "data": { "id": 1, "is_active": false } }
✏️ Mettre à jour une ou plusieurs étapes d'approbation Body: { "datas": [ { "id": 1, "name": "DEPARTMENT_HEAD_REVIEW", "step_order": 1, "is_active": true } ] }
Récupérer tous les KPI pour le dashboard admin Body: { "data": { "period": "month", // "week", "month", "quarter", "year", ou dates personnalisées "start_date": "01/01/2024", // optionnel si period spécifié "end_date": "31/12/2024" // optionnel si period spécifié } }
Créer un ou plusieurs départements Accessible par: ADMIN, SUPER_ADMIN Body: { "datas": [ { "name": "Ressources Humaines", "cost_center": "RH-006", "email": "rh@orange.com.lr", "phone": "+231 77 999 9999" } ] }
Supprimer (soft delete) un ou plusieurs départements Body: { "datas": [ {"id": 3} ] }
Récupérer la liste des départements avec pagination Accessible par: ADMIN, SUPER_ADMIN, DEPARTMENT_HEAD, FINANCE_MANAGER Body: { "data": { "search_string": "achats", // Optionnel "is_active": true // Optionnel }, "index": 0, "size": 10 } Réponse: { "items": [ { "id": 3, "name": "Achats", "cost_center": "ACH-003", "email": "achats@orange.com.lr", "phone": "+231 77 345 6789", "is_active": true, "created_at": "17/02/2026 10:00:00" } ], "count": 1 }
Récupérer les détails d'un département Body: { "data": { "id": 3 } } Réponse: Détails complets + liste des membres
🎯 ENDPOINT PRINCIPAL - Ajouter un membre à un département Accessible par: ADMIN, SUPER_ADMIN Body: { "data": { "department_id": 3, "user_id": 5, "position": "Head" // Options: "Head", "Manager", "Member" } } Réponse: { "items": [{ "id": 10, "department_id": 3, "user_id": 5, "position": "Head", "created_at": "17/02/2026 14:30:00", "department": {...}, "user": {...} }] }
Récupérer tous les utilisateurs disponibles pour assignation à un département Filtre optionnel pour exclure les membres déjà assignés à un département spécifique Body: { "data": { "department_id": 3, // Optionnel - exclut les membres déjà dans ce département "role_filter": "DEPARTMENT_HEAD" // Optionnel - filtre par rôle }, "index": 0, "size": 50 }
Lister tous les départements d'un utilisateur Body: { "data": { "user_id": 3 } }
Récupérer le Head d'un département Body: { "data": { "department_id": 3 } } Réponse: { "items": [{ "id": 10, "position": "Head", "user": { "id": 3, "first_name": "Jean", "last_name": "Dupont", "email": "jean@orange.com.lr" } }] }
Lister tous les membres d'un département Body: { "data": { "department_id": 3 } } Réponse: Liste complète avec détails utilisateur et rôle
Retirer un membre d'un département (soft delete) Body: { "data": { "member_id": 10 } }
Modifier la position d'un membre Body: { "data": { "member_id": 10, "position": "Manager" } }
Mettre à jour un ou plusieurs départements Body: { "datas": [ { "id": 3, "name": "Achats et Approvisionnements", "email": "achats.new@orange.com.lr" } ] }
The view function used to serve files from :attr:`static_folder`. A route is automatically registered for this view at :attr:`static_url_path` if :attr:`static_folder` is set. Note this is a duplicate of the same method in the Flask class. .. versionadded:: 0.5
Aucune description (ajoute un docstring à la vue).
Aucune description (ajoute un docstring à la vue).
Aucune description (ajoute un docstring à la vue).
Aucune description (ajoute un docstring à la vue).
The OAuth2 redirect HTML for Swagger UI standard/implicit flow
Get all reminders for a specific submission
Get all pending reminders for the current user based on their role
Créer un fournisseur ET son administrateur en une seule transaction Accessible uniquement par SUPER_ADMIN ou ADMIN Body: { "data": { "code": "001", "legal_name": "Namaya Cooperation", "trade_name": "Samuel Namayan", "tax_id": "TIN-004", "email": "samuel.namayan@orange.com", "phone": "+231777777485", "address": "Monrovia Liberia", "status": "ACTIVE" } } L'administrateur sera créé automatiquement avec les mêmes informations : - first_name: première partie du nom (avant espace) ou "Admin" - last_name: reste du nom ou nom de l'entreprise - email: le même email que le fournisseur - telephone: le même téléphone que le fournisseur - position: "Administrator" par défaut Les notifications (email + SMS) sont TOUJOURS envoyées avec les identifiants de connexion.
Créer un fournisseur ET son administrateur en une seule transaction Accessible uniquement par SUPER_ADMIN ou ADMIN Body: { "data": { "supplier": { "code": "SUP001", "legal_name": "ABC Corporation", "trade_name": "ABC", "tax_id": "TAX123456", "email": "contact@abc.com", "phone": "+231 77 123 4567", "address": "Monrovia, Liberia", "website": "https://www.abc.com" }, "admin_user": { "first_name": "John", "last_name": "Doe", "email": "john.doe@abc.com", "telephone": "+231 77 765 4321", "position": "Manager" }, "send_notifications": true } }
Récupérer les statistiques du tableau de bord pour un supplier admin Body: { "data": { "period_days": 30 // Optionnel, défaut 30 jours } }
Supprimer (soft delete) un fournisseur Accessible uniquement par SUPER_ADMIN ou ADMIN
Récupérer les fournisseurs avec critères de recherche Accessible par: SUPER_ADMIN, ADMIN, SUPPLIER_ADMIN (limité à son propre supplier) Body: { "data": { "search_string": "ABC", "status": "ACTIVE", "code": "SUP001", "legal_name": "ABC Corporation", "created_from": "01/01/2024", "created_to": "31/12/2024", "include_users": true // Inclure les utilisateurs du supplier }, "index": 0, "size": 10 }
Récupérer les détails complets d'un fournisseur Body: { "data": { "id": 1, "include_users": true, "include_submissions": true, "include_payments": true } }
Mettre à jour un fournisseur existant Accessible par: SUPER_ADMIN, ADMIN, SUPPLIER_ADMIN (limité à son supplier)
Ajouter un utilisateur (admin) à un fournisseur Accessible par: SUPER_ADMIN, ADMIN, SUPPLIER_ADMIN (pour son supplier) Body: { "data": { "supplier_id": 1, "user_data": { "first_name": "Jane", "last_name": "Smith", "email": "jane.smith@abc.com", "telephone": "+231 77 555 1234", "position": "Accountant" }, "is_primary_contact": false, "send_notifications": true } }
Récupérer les utilisateurs d'un fournisseur Ou un utilisateur spécifique si user_id ou supplier_user_id est fourni Body: { "data": { "supplier_id": 1, // Optionnel si user_id fourni "user_id": 25, // Optionnel - pour un user spécifique "supplier_user_id": 8, // Optionnel - pour une relation spécifique "search_string": "John", // Optionnel "include_inactive": false // Optionnel }, "index": 0, "size": 20 }
Retirer un utilisateur d'un fournisseur (soft delete) Body: { "data": { "supplier_user_id": 5 } }
Réinitialiser le mot de passe d'un utilisateur fournisseur Body: { "data": { "supplier_user_id": 5, "send_notifications": true } }
Mettre à jour un utilisateur fournisseur Body: { "data": { "supplier_user_id": 5, "user_data": { "first_name": "Jane", "last_name": "Smith", "telephone": "+231 77 555 4321", "position": "Senior Accountant" }, "is_primary_contact": true } }
Aucune description (ajoute un docstring à la vue).
Aucune description (ajoute un docstring à la vue).
Aucune description (ajoute un docstring à la vue).
Aucune description (ajoute un docstring à la vue).
Aucune description (ajoute un docstring à la vue).
Process payment for a submission with payment proof PDF Body (JSON): { "data": { "submission_id": 123, "payment_reference": "PAY-2025-001", "payment_method": "BANK_TRANSFER", "notes": "Payment processed" }, "payment_proof": { "file_name": "payment_proof.pdf", "file_base64": "data:application/pdf;base64,JVBERi0..." } }
Accounting verification of a submission Accessible only to accounts payable users
Department verification of a submission Accessible only to department heads
Finance verification of a submission Accessible only to finance users
Get submission details with fresh URLs and base64 content
Get payments for a specific submission with options Body: { "include_base64": true, # Toujours inclure le base64 "include_urls": true, "expires": 3600 }
Refresh document URLs for a submission Body: { "data": { "expires": 3600 } }
Create a submission with optional documents (Invoice, Delivery Note, PO Document) At least one document is required. Body (JSON): { "data": { "submission_type": "INVOICE", "reference_number": "INV-2025-001", "description": "Invoice for January 2025" }, "documents": { "invoice": { "file_name": "invoice_january.pdf", "file_base64": "data:application/pdf;base64,JVBERi0..." }, "delivery_note": { "file_name": "delivery_note_january.pdf", "file_base64": "data:application/pdf;base64,JVBERi0..." }, "po_document": { "file_name": "po_january.pdf", "file_base64": "data:application/pdf;base64,JVBERi0..." } } } Note: At least one of invoice, delivery_note, or po_document must be provided.
Update a submission with missing information and trigger finance verification. Accessible by: ADMIN, FINANCE, FINANCE_MANAGER Body: { "data": { "submission_id": 1, "action": "APPROVE", "department_id": 3, "amount": 1500.00, "currency": "USD", "due_date": "2026-04-15", "po_id": 12, "notes": "Verified by finance", "reason": "Document non conforme" } }
Get all submissions with complete details including all documents and payment proofs Accessible by: ADMIN, SUPER_ADMIN, FINANCE, FINANCE_MANAGER, DEPARTMENT_HEAD, ACCOUNTS_PAYABLE (NOT accessible by SUPPLIER_ADMIN) Body (optional filters): { "filters": { "status": ["SUBMITTED", "FINANCE_PENDING"], // Filter by status(es) "supplier_id": 1, // Filter by supplier "department_id": 3, // Filter by department "from_date": "2026-01-01", // Filter by submission date "to_date": "2026-12-31", "has_payment_proof": true, // Only submissions with payment proof "search": "INV-2025" // Search in reference/description }, "include_base64": true, // Include base64 content of documents "include_urls": true, // Include presigned URLs "expires": 3600, // URL expiration in seconds "index": 0, // Pagination index "size": 20 // Page size } Returns: List of submissions with all documents, payment proofs, approval history, etc.
Get pending submissions based on user role