Aller au contenu

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 (statut declined)
  • 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'IBAN lwIbanId

Décorateur : L40.

Path param

  • requestId — UUIDv4 (PropertyConstructionBudgetRequest.Id)

Request body

Discriminated union sur action :

{ "action": "decline" }
{ "action": "approve-no-withdraw" }
{ "action": "approve-withdraw", "lwIbanId": 12345 }

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

{
  "propertyId": "uuid-v4",
  "paymentAmount": 100000,
  "paymentDate": "2026-04-15"
}

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