Property Construction Budget¶
Endpoints d'administration pour gérer le budget travaux d'une property (demandes de tirage, approbation/refus, transfert vers un paiement d'échéancier). Source : property-construction-budget.controller.ts.
Tous les endpoints requièrent une session admin BetterAuth valide (AdminAuthGuard).
GET /administration/property/construction-budget/summary¶
Retourne, pour chaque property ayant un budget travaux, un résumé : ID, business ID, nom, créé le, état du budget (waiting / paid / total), flag hasInternalNote.
Décorateur : L28.
Response¶
[
{
"projectId": "uuid",
"projectBusinessId": "BR-2026-001",
"projectName": "Résidence Les Lilas",
"createdAt": "2026-01-12T10:00:00Z",
"currentBudget": {
"waiting": 50000,
"paid": 200000,
"total": 500000
},
"hasInternalNote": true
}
]
Montants en cents.
GET /administration/property/construction-budget/request/waiting¶
Liste toutes les demandes de tirage en attente d'approbation, jointes à leur property.
Décorateur : L34.
Response¶
[
{
"request": { "...": "PropertyConstructionBudgetRequest (status=waiting)" },
"propertyName": "Résidence Les Lilas",
"hasInternalNote": false
}
]
PATCH /administration/property/construction-budget/request/:requestId¶
Approuve ou refuse une demande de tirage en attente. Trace une AdminAction PROJECT_CONSTRUCTION_BUDGET_APPROVE_OR_DECLINE_REQUEST via interceptor.
Trois actions possibles :
decline: refus (statutdeclined)approve-no-withdraw: approuvée mais sans retrait Lemonway (bypass manuel, virement effectué hors API)approve-withdraw: approuvée + déclenchement du retrait Lemonway sur l'IBANlwIbanId
Décorateur : L40.
Path param¶
requestId— UUIDv4 (PropertyConstructionBudgetRequest.Id)
Request body¶
Discriminated union sur action :
lwIbanId doit appartenir aux IBAN de retrait connus du SPV.
Erreurs¶
| Code | Statut | Cause |
|---|---|---|
request.not-found |
400 | Demande introuvable ou pas en statut waiting |
spv-not-found |
400 | SPV de la property introuvable |
lemonway.withdraw-iban-not-found |
400 | lwIbanId ne correspond à aucun IBAN du SPV |
project-funding-not-received-by-project-owner |
400 | Le porteur n'a pas encore reçu le funding (préalable au tirage) |
spv-lemonway-wallet-not-found |
400 | Wallet Lemonway du SPV introuvable |
could-not-get-bank-accounts |
500 | Échec de récupération des IBAN Lemonway |
lemonway.withdraw-failed |
500 | Échec du MoneyOut Lemonway |
lemonway.withdraw-not-success |
500 | Lemonway a renvoyé un statut ≠ success |
POST /administration/property/construction-budget/transfer-construction-budget-to-echeance-payment¶
Transfère un montant du budget travaux vers un paiement à assigner pour l'échéancier (cas où la trésorerie sequestrée est requalifiée en paiement d'échéance). Trace une AdminAction PROJECT_CONSTRUCTION_BUDGET_TRANSFER_TO_ECHEANCE_PAYMENT via interceptor. Crée un WireToBeAssigned côté échéancier et soustrait le montant correspondant du budget travaux disponible.
Décorateur : L79.
Request body¶
paymentAmount en cents (positif), paymentDate au format YYYY-MM-DD (CalendarDate).
Erreurs¶
| Code | Statut | Cause |
|---|---|---|
<service error> |
400 | Toute erreur métier (budget insuffisant, status incorrect, paiement existant non-rapprochable…) |
Liens¶
- Service :
property-construction-budget.service.ts - Repository :
property-construction-budget.repository.ts - Modèle de demande :
property-construction-budget-request.model.ts - Service Lemonway withdraw :
lemonway-withdraw.service.ts