9. Activer & paramétrer un dossier
Observé — activation d’un dossier existant puis paramétrage facturation auto, loyers, solde et révision.
Pourquoi
Passer un dossier en actif, brancher la facturation automatique, aligner les postes de loyer, ajuster le solde d’ouverture et la révision de loyer.
Prérequis
- Dossier de location existant (
id) - Compte locatif associé (
rentalAccountId) - Opérations / lots pour les
rentItems - Codes TVA :
vatCodeIdetvatExemptionCodeIdsur chaque poste (RentalAccountRentItemsInput— optionnels aujourd’hui, prévus obligatoires ;listVatCodes/listVatExemptionCodes) - Optionnel :
effectiveEntryDate(date d’effet d’entrée) pourchangeStateToActive
9.1 Activer le dossier (changeStateToActive)
- GraphQL
- Node.js
- curl
mutation changeStateToActive($id: UUID!, $effectiveEntryDate: Date) {
changeStateToActive(id: $id, effectiveEntryDate: $effectiveEntryDate) {
id
reference
}
}
{
"id": "00000000-0000-4000-8000-000000000093",
"effectiveEntryDate": null
}
import { ublo } from '../ubloClient.mjs';
const { changeStateToActive: folder } = await ublo(
`mutation changeStateToActive($id: UUID!, $effectiveEntryDate: Date) {
changeStateToActive(id: $id, effectiveEntryDate: $effectiveEntryDate) { id reference }
}`,
{ id: '00000000-0000-4000-8000-000000000093', effectiveEntryDate: null },
);
- Bearer
- Cookie session
curl -sS -X POST "$UBLO_GRAPHQL_URL" \
-H "Authorization: Bearer $UBLO_API_TOKEN" \
-H 'Content-Type: application/json' \
-d '{"query":"mutation changeStateToActive($id: UUID!, $effectiveEntryDate: Date) { changeStateToActive(id: $id, effectiveEntryDate: $effectiveEntryDate) { id reference } }","variables":{"id":"00000000-0000-4000-8000-000000000093","effectiveEntryDate":null}}'
curl -sS -X POST "$UBLO_GRAPHQL_URL" \
-H 'Content-Type: application/json' \
-b cookies.txt \
-d '{"query":"mutation changeStateToActive($id: UUID!, $effectiveEntryDate: Date) { changeStateToActive(id: $id, effectiveEntryDate: $effectiveEntryDate) { id reference } }","variables":{"id":"00000000-0000-4000-8000-000000000093","effectiveEntryDate":null}}'
9.2 Facturation automatique (updateAutoInvoicingConfig)
mutation updateAutoInvoicingConfig($rentalAccountId: UUID!, $autoInvoicingConfig: AutoInvoicingConfigInput!) {
updateAutoInvoicingConfig(
rentalAccountId: $rentalAccountId
autoInvoicingConfig: $autoInvoicingConfig
) {
id
isActive
invoicingFrequency
}
}
{
"rentalAccountId": "00000000-0000-4000-8000-000000000094",
"autoInvoicingConfig": {
"invoicingStartDate": "2026-07-13",
"invoicingEndDate": null,
"invoicingFrequency": "monthly",
"invoicingTimeWindow": "calendar",
"dueDateMethod": "paid_in_advance",
"dueDatePositioning": "start_of_month",
"paymentDueDay": 5,
"automationStartDate": "2026-08-03",
"automationEndDate": null,
"accountingInvoiceConfigId": "00000000-0000-4000-8000-000000000095",
"invoicingOffset": 10,
"autoSendTime": "06:30:00",
"isActive": true
}
}
- Bearer
- Cookie session
# payload.json = query + variables ci-dessus
curl -sS -X POST "$UBLO_GRAPHQL_URL" \
-H "Authorization: Bearer $UBLO_API_TOKEN" \
-H 'Content-Type: application/json' \
-d @payload.json
curl -sS -X POST "$UBLO_GRAPHQL_URL" \
-H 'Content-Type: application/json' \
-b cookies.txt \
-d @payload.json
9.3 Postes de loyer (updateRentalAccountRentItems)
Montant observé : 60000 (600,00 €).
mutation updateRentalAccountRentItems(
$rentalAccountId: UUID!
$rentalAccountRentItems: [RentalAccountRentItemsInput!]!
$vatTerm: String
) {
updateRentalAccountRentItems(
rentalAccountId: $rentalAccountId
rentalAccountRentItems: $rentalAccountRentItems
vatTerm: $vatTerm
) {
rentalAccountId
}
}
{
"rentalAccountId": "00000000-0000-4000-8000-000000000094",
"rentalAccountRentItems": [
{
"amount": 60000,
"id": "00000000-0000-4000-8000-000000000096",
"operationId": "00000000-0000-4000-8000-000000000003",
"unitId": "00000000-0000-4000-8000-000000000097",
"vatCodeId": "00000000-0000-4000-8000-000000000201",
"vatExemptionCodeId": "00000000-0000-4000-8000-000000000202",
"vatMention": "not_applicable",
"vatRate": 0,
"vatSpecific": "accounting"
}
],
"vatTerm": null
}
9.4 Solde d’ouverture (setBalanceOffset)
Exemple observé : -40000 (−400,00 €).
mutation setBalanceOffset($rentalAccountId: UUID!, $setBalanceOffsetInput: SetBalanceOffsetInput!) {
setBalanceOffset(
rentalAccountId: $rentalAccountId
setBalanceOffsetInput: $setBalanceOffsetInput
) {
rentalAccountId
}
}
{
"rentalAccountId": "00000000-0000-4000-8000-000000000094",
"setBalanceOffsetInput": {
"balanceOffset": -40000
}
}
9.5 Révision de loyer (updateRentRevision)
mutation updateRentRevision($rentalAccountId: UUID!, $rentRevision: RentalAccountRentRevisionInput!) {
updateRentRevision(rentalAccountId: $rentalAccountId, rentRevision: $rentRevision) {
rentalAccountId
}
}
{
"rentalAccountId": "00000000-0000-4000-8000-000000000094",
"rentRevision": {
"currentRevisionId": "00000000-0000-4000-8000-000000000103",
"isAnnualRevisionActive": true,
"isAutomatic": true,
"revisionFrequency": "on_anniversary"
}
}
Note — patch dossier (updateRentalFolder)
updateRentalFolder peut mettre à jour contractDetails, profils, unités, et rentalInsurances. Exemple minimal d’assurance observé :
{
"rentalInsurances": [
{
"startDate": "2026-01-01",
"endDate": "2026-12-31",
"insurerName": "Assureur Exemple",
"policyNumber": "34565677",
"isAutoRenewal": true
}
]
}
Inspectez contractDetails / rentalInsurances selon le besoin ; le payload UI complet est volumineux.