Leases

Lease agreements.

The object#

FieldTypeDescription
idread-onlyintegerNolaPro id.
unitidintegerUnitid. Id only.
customeridintegerReference to customers, by id. Write either this or customer.
customerstring(30)Code for the referenced customer, instead of the id.
useridintegerUserid. Id only.
userstring(50)The name of the referenced genusers, instead of the id. Send this or userid, not both unless they agree.
rentperiodstring(5)Rent Period: W = weekly, SM = semi-monthly, M = monthly, S = semester, SY = semi-yearly, AY = academic year, Y = yearly.
cotenantstring(150)Co-tenant named on the lease.
cotenantemailstring(200)Email of the co-tenant.
begindatestringDate the lease begins.
enddatestringDate the lease ends.
moveindatestringDate the tenant moves in.
firstinvoicemonthsintegerMonths before the move-in date that the first invoice comes due; copied from the building default.
origenddatestringOriginal end date before any renewal or extension.
rentamountmoneystring(6dp)Stored as decimal(19,6).
petrentmoneystring(6dp)Stored as decimal(19,6).
lawncaremoneystring(6dp)Stored as decimal(19,6).
revenueglaccountidintegerReference to glaccounts, by id. Write either this or revenueglaccount.
revenueglaccountstring(20)The name of the referenced glaccounts, instead of the id. Send this or revenueglaccountid, not both unless they agree.
petrentglaccountidintegerReference to glaccounts, by id. Write either this or petrentglaccount.
petrentglaccountstring(20)The name of the referenced glaccounts, instead of the id. Send this or petrentglaccountid, not both unless they agree.
lawncareglaccountidintegerReference to glaccounts, by id. Write either this or lawncareglaccount.
lawncareglaccountstring(20)The name of the referenced glaccounts, instead of the id. Send this or lawncareglaccountid, not both unless they agree.
deferredrevenueglaccountidintegerReference to glaccounts, by id. Write either this or deferredrevenueglaccount.
deferredrevenueglaccountstring(20)The name of the referenced glaccounts, instead of the id. Send this or deferredrevenueglaccountid, not both unless they agree.
numpaymentsintegerNumber of rent payments over the lease term, derived from the rent period (e.g. 12 for monthly).
depositamountmoneystring(6dp)Stored as decimal(19,6).
depositcreditmoneystring(6dp)Stored as decimal(19,6).
depositreturnedmoneystring(6dp)Stored as decimal(19,6).
depositreturnedinvoiceidintegerInvoice the returned deposit was credited on. Write either this or depositreturnedinvoice.
depositreturnedinvoicestring(30)Invoice NUMBER (arinvoice.invoicenumber) instead of the id. The sibling of depositreturnedinvoiceid.
depositkeptvoucheridintegerDepositkeptvoucherid. Id only.
depositkeptvoucherstring(50)The voucher of the referenced gltransactions, instead of the id. Send this or depositkeptvoucherid, not both unless they agree.
depositglaccountidintegerReference to glaccounts, by id. Write either this or depositglaccount.
depositglaccountstring(20)The name of the referenced glaccounts, instead of the id. Send this or depositglaccountid, not both unless they agree.
overagecapmoneystring(6dp)Stored as decimal(19,6).
latefeemoneystring(6dp)Stored as decimal(19,6).
transferfeemoneystring(6dp)Stored as decimal(19,6).
notestextNotes. Stored as text, no practical length limit.
entrydateread-onlystringWhen the record was created.
cancelbooleanCancelled. Always a boolean on the wire, whatever integer width the column uses (D23).
reservationfeemoneystring(6dp)Stored as decimal(19,6).
reservationfeeglaccountidintegerReference to glaccounts, by id. Write either this or reservationfeeglaccount.
reservationfeeglaccountstring(20)The name of the referenced glaccounts, instead of the id. Send this or reservationfeeglaccountid, not both unless they agree.
petdepositmoneystring(6dp)Stored as decimal(19,6).
petdepositcreditmoneystring(6dp)Stored as decimal(19,6).
petdepositglaccountidintegerReference to glaccounts, by id. Write either this or petdepositglaccount.
petdepositglaccountstring(20)The name of the referenced glaccounts, instead of the id. Send this or petdepositglaccountid, not both unless they agree.
petdepositreturnedmoneystring(6dp)Stored as decimal(19,6).
proratedamountmoneystring(6dp)Stored as decimal(19,6).
prorateddaysintegerDays of prorated rent billed for a partial first period.
proratedtotaldaysintegerTotal days in the period the proration was computed against.
paymentplantextPaymentplan. Stored as text, no practical length limit.
leaseendedinteger1 once the lease has ended.
leaseendeddatestringDate the lease actually ended.
leaseendeduseridintegerReference to genusers, by id. Write either this or leaseendeduser.
leaseendeduserstring(50)The name of the referenced genusers, instead of the id. Send this or leaseendeduserid, not both unless they agree.
origleaseidintegerOrigleaseid. Id only.
renewedinteger1 when the lease was renewed into a newer lease.
transferredinteger1 when the lease was transferred to another unit or tenant.
transferredunitidintegerTransferredunitid. Id only.
autobillinteger1 generates rent invoices automatically each period (Auto Bill).
leasecodestring(30)Short code identifying the lease.
signedinteger1 once the signed lease is on file; unsigned leases are flagged on lease lists.
prepaymentamountmoneystring(6dp)Stored as decimal(19,6).
prepaymentdatestringDate the prepayment (e.g. deposit or first rent) was received.
cotenant2string(150)Second co-tenant named on the lease.
cotenant2emailstring(200)Email of the second co-tenant.
externalidstring(100)Your own key. Scoped to your company.

Endpoints#

POST/leases/batch 207

Create many.

Requires scope properties:write.

Parameters
NameInTypeNotes
Idempotency-KeyheaderstringMakes the write safely retryable. Any unique string per logical operation; a UUID is fine. The failure this prevents is specific: the request succeeds, the response is lost to a timeout, you retry, and the customer is billed twice. With a key, the retry returns the original response - same status, same body, same id - and creates nothing. The body is part of the key's identity. Reusing a key with a different body is a bug on your side, not a retry, and answers 409 idempotency_replay rather than silently handing back the old response. Keys are remembered for 24 hours.
Body array
FieldTypeDescription
idread-onlyintegerNolaPro id.
unitidintegerUnitid. Id only.
customeridintegerReference to customers, by id. Write either this or customer.
customerstring(30)Code for the referenced customer, instead of the id.
useridintegerUserid. Id only.
userstring(50)The name of the referenced genusers, instead of the id. Send this or userid, not both unless they agree.
rentperiodstring(5)Rent Period: W = weekly, SM = semi-monthly, M = monthly, S = semester, SY = semi-yearly, AY = academic year, Y = yearly.
cotenantstring(150)Co-tenant named on the lease.
cotenantemailstring(200)Email of the co-tenant.
begindatestringDate the lease begins.
enddatestringDate the lease ends.
moveindatestringDate the tenant moves in.
firstinvoicemonthsintegerMonths before the move-in date that the first invoice comes due; copied from the building default.
origenddatestringOriginal end date before any renewal or extension.
rentamountmoneystring(6dp)Stored as decimal(19,6).
petrentmoneystring(6dp)Stored as decimal(19,6).
lawncaremoneystring(6dp)Stored as decimal(19,6).
revenueglaccountidintegerReference to glaccounts, by id. Write either this or revenueglaccount.
revenueglaccountstring(20)The name of the referenced glaccounts, instead of the id. Send this or revenueglaccountid, not both unless they agree.
petrentglaccountidintegerReference to glaccounts, by id. Write either this or petrentglaccount.
petrentglaccountstring(20)The name of the referenced glaccounts, instead of the id. Send this or petrentglaccountid, not both unless they agree.
lawncareglaccountidintegerReference to glaccounts, by id. Write either this or lawncareglaccount.
lawncareglaccountstring(20)The name of the referenced glaccounts, instead of the id. Send this or lawncareglaccountid, not both unless they agree.
deferredrevenueglaccountidintegerReference to glaccounts, by id. Write either this or deferredrevenueglaccount.
deferredrevenueglaccountstring(20)The name of the referenced glaccounts, instead of the id. Send this or deferredrevenueglaccountid, not both unless they agree.
numpaymentsintegerNumber of rent payments over the lease term, derived from the rent period (e.g. 12 for monthly).
depositamountmoneystring(6dp)Stored as decimal(19,6).
depositcreditmoneystring(6dp)Stored as decimal(19,6).
depositreturnedmoneystring(6dp)Stored as decimal(19,6).
depositreturnedinvoiceidintegerInvoice the returned deposit was credited on. Write either this or depositreturnedinvoice.
depositreturnedinvoicestring(30)Invoice NUMBER (arinvoice.invoicenumber) instead of the id. The sibling of depositreturnedinvoiceid.
depositkeptvoucheridintegerDepositkeptvoucherid. Id only.
depositkeptvoucherstring(50)The voucher of the referenced gltransactions, instead of the id. Send this or depositkeptvoucherid, not both unless they agree.
depositglaccountidintegerReference to glaccounts, by id. Write either this or depositglaccount.
depositglaccountstring(20)The name of the referenced glaccounts, instead of the id. Send this or depositglaccountid, not both unless they agree.
overagecapmoneystring(6dp)Stored as decimal(19,6).
latefeemoneystring(6dp)Stored as decimal(19,6).
transferfeemoneystring(6dp)Stored as decimal(19,6).
notestextNotes. Stored as text, no practical length limit.
entrydateread-onlystringWhen the record was created.
cancelbooleanCancelled. Always a boolean on the wire, whatever integer width the column uses (D23).
reservationfeemoneystring(6dp)Stored as decimal(19,6).
reservationfeeglaccountidintegerReference to glaccounts, by id. Write either this or reservationfeeglaccount.
reservationfeeglaccountstring(20)The name of the referenced glaccounts, instead of the id. Send this or reservationfeeglaccountid, not both unless they agree.
petdepositmoneystring(6dp)Stored as decimal(19,6).
petdepositcreditmoneystring(6dp)Stored as decimal(19,6).
petdepositglaccountidintegerReference to glaccounts, by id. Write either this or petdepositglaccount.
petdepositglaccountstring(20)The name of the referenced glaccounts, instead of the id. Send this or petdepositglaccountid, not both unless they agree.
petdepositreturnedmoneystring(6dp)Stored as decimal(19,6).
proratedamountmoneystring(6dp)Stored as decimal(19,6).
prorateddaysintegerDays of prorated rent billed for a partial first period.
proratedtotaldaysintegerTotal days in the period the proration was computed against.
paymentplantextPaymentplan. Stored as text, no practical length limit.
leaseendedinteger1 once the lease has ended.
leaseendeddatestringDate the lease actually ended.
leaseendeduseridintegerReference to genusers, by id. Write either this or leaseendeduser.
leaseendeduserstring(50)The name of the referenced genusers, instead of the id. Send this or leaseendeduserid, not both unless they agree.
origleaseidintegerOrigleaseid. Id only.
renewedinteger1 when the lease was renewed into a newer lease.
transferredinteger1 when the lease was transferred to another unit or tenant.
transferredunitidintegerTransferredunitid. Id only.
autobillinteger1 generates rent invoices automatically each period (Auto Bill).
leasecodestring(30)Short code identifying the lease.
signedinteger1 once the signed lease is on file; unsigned leases are flagged on lease lists.
prepaymentamountmoneystring(6dp)Stored as decimal(19,6).
prepaymentdatestringDate the prepayment (e.g. deposit or first rent) was received.
cotenant2string(150)Second co-tenant named on the lease.
cotenant2emailstring(200)Email of the second co-tenant.
externalidstring(100)Your own key. Scoped to your company.
curl -X POST \
  'https://acme.nolapro.com/!/api/v2/leases/batch' \
  -H 'Authorization: Bearer $NP_TOKEN' \
  -H 'Content-Type: application/json' \
  -H 'Idempotency-Key: your-unique-key' \
  -d '[
    {
        "unitid": 104,
        "customerid": 104,
        "customer": "Example customer",
        "user": "Example user",
        "rentperiod": "Example rentperiod",
        "cotenant": "Example cotenant"
    }
]'
GET/leases 200403

List leases.

Requires scope properties:read.

Parameters
NameInTypeNotes
customeridquerystringRestrict to one customerid.
cancelquerystringDefaults to false. Pass true or any.
externalidquerystringExact match on your own key.
includequerystringComma-separated extras to embed. Only custom_fields is available: the extra fields this install has defined on the record. Off by default, and an unrecognised value is refused rather than ignored. See Conventions.
When it fails
StatusCodeMeaning
403insufficient_scopeToken lacks read scope.
curl \
  'https://acme.nolapro.com/!/api/v2/leases' \
  -H 'Authorization: Bearer $NP_TOKEN'
POST/leases 201400

Create.

Requires scope properties:write.

Parameters
NameInTypeNotes
Idempotency-KeyheaderstringMakes the write safely retryable. Any unique string per logical operation; a UUID is fine. The failure this prevents is specific: the request succeeds, the response is lost to a timeout, you retry, and the customer is billed twice. With a key, the retry returns the original response - same status, same body, same id - and creates nothing. The body is part of the key's identity. Reusing a key with a different body is a bug on your side, not a retry, and answers 409 idempotency_replay rather than silently handing back the old response. Keys are remembered for 24 hours.
Body
FieldTypeDescription
idread-onlyintegerNolaPro id.
unitidintegerUnitid. Id only.
customeridintegerReference to customers, by id. Write either this or customer.
customerstring(30)Code for the referenced customer, instead of the id.
useridintegerUserid. Id only.
userstring(50)The name of the referenced genusers, instead of the id. Send this or userid, not both unless they agree.
rentperiodstring(5)Rent Period: W = weekly, SM = semi-monthly, M = monthly, S = semester, SY = semi-yearly, AY = academic year, Y = yearly.
cotenantstring(150)Co-tenant named on the lease.
cotenantemailstring(200)Email of the co-tenant.
begindatestringDate the lease begins.
enddatestringDate the lease ends.
moveindatestringDate the tenant moves in.
firstinvoicemonthsintegerMonths before the move-in date that the first invoice comes due; copied from the building default.
origenddatestringOriginal end date before any renewal or extension.
rentamountmoneystring(6dp)Stored as decimal(19,6).
petrentmoneystring(6dp)Stored as decimal(19,6).
lawncaremoneystring(6dp)Stored as decimal(19,6).
revenueglaccountidintegerReference to glaccounts, by id. Write either this or revenueglaccount.
revenueglaccountstring(20)The name of the referenced glaccounts, instead of the id. Send this or revenueglaccountid, not both unless they agree.
petrentglaccountidintegerReference to glaccounts, by id. Write either this or petrentglaccount.
petrentglaccountstring(20)The name of the referenced glaccounts, instead of the id. Send this or petrentglaccountid, not both unless they agree.
lawncareglaccountidintegerReference to glaccounts, by id. Write either this or lawncareglaccount.
lawncareglaccountstring(20)The name of the referenced glaccounts, instead of the id. Send this or lawncareglaccountid, not both unless they agree.
deferredrevenueglaccountidintegerReference to glaccounts, by id. Write either this or deferredrevenueglaccount.
deferredrevenueglaccountstring(20)The name of the referenced glaccounts, instead of the id. Send this or deferredrevenueglaccountid, not both unless they agree.
numpaymentsintegerNumber of rent payments over the lease term, derived from the rent period (e.g. 12 for monthly).
depositamountmoneystring(6dp)Stored as decimal(19,6).
depositcreditmoneystring(6dp)Stored as decimal(19,6).
depositreturnedmoneystring(6dp)Stored as decimal(19,6).
depositreturnedinvoiceidintegerInvoice the returned deposit was credited on. Write either this or depositreturnedinvoice.
depositreturnedinvoicestring(30)Invoice NUMBER (arinvoice.invoicenumber) instead of the id. The sibling of depositreturnedinvoiceid.
depositkeptvoucheridintegerDepositkeptvoucherid. Id only.
depositkeptvoucherstring(50)The voucher of the referenced gltransactions, instead of the id. Send this or depositkeptvoucherid, not both unless they agree.
depositglaccountidintegerReference to glaccounts, by id. Write either this or depositglaccount.
depositglaccountstring(20)The name of the referenced glaccounts, instead of the id. Send this or depositglaccountid, not both unless they agree.
overagecapmoneystring(6dp)Stored as decimal(19,6).
latefeemoneystring(6dp)Stored as decimal(19,6).
transferfeemoneystring(6dp)Stored as decimal(19,6).
notestextNotes. Stored as text, no practical length limit.
entrydateread-onlystringWhen the record was created.
cancelbooleanCancelled. Always a boolean on the wire, whatever integer width the column uses (D23).
reservationfeemoneystring(6dp)Stored as decimal(19,6).
reservationfeeglaccountidintegerReference to glaccounts, by id. Write either this or reservationfeeglaccount.
reservationfeeglaccountstring(20)The name of the referenced glaccounts, instead of the id. Send this or reservationfeeglaccountid, not both unless they agree.
petdepositmoneystring(6dp)Stored as decimal(19,6).
petdepositcreditmoneystring(6dp)Stored as decimal(19,6).
petdepositglaccountidintegerReference to glaccounts, by id. Write either this or petdepositglaccount.
petdepositglaccountstring(20)The name of the referenced glaccounts, instead of the id. Send this or petdepositglaccountid, not both unless they agree.
petdepositreturnedmoneystring(6dp)Stored as decimal(19,6).
proratedamountmoneystring(6dp)Stored as decimal(19,6).
prorateddaysintegerDays of prorated rent billed for a partial first period.
proratedtotaldaysintegerTotal days in the period the proration was computed against.
paymentplantextPaymentplan. Stored as text, no practical length limit.
leaseendedinteger1 once the lease has ended.
leaseendeddatestringDate the lease actually ended.
leaseendeduseridintegerReference to genusers, by id. Write either this or leaseendeduser.
leaseendeduserstring(50)The name of the referenced genusers, instead of the id. Send this or leaseendeduserid, not both unless they agree.
origleaseidintegerOrigleaseid. Id only.
renewedinteger1 when the lease was renewed into a newer lease.
transferredinteger1 when the lease was transferred to another unit or tenant.
transferredunitidintegerTransferredunitid. Id only.
autobillinteger1 generates rent invoices automatically each period (Auto Bill).
leasecodestring(30)Short code identifying the lease.
signedinteger1 once the signed lease is on file; unsigned leases are flagged on lease lists.
prepaymentamountmoneystring(6dp)Stored as decimal(19,6).
prepaymentdatestringDate the prepayment (e.g. deposit or first rent) was received.
cotenant2string(150)Second co-tenant named on the lease.
cotenant2emailstring(200)Email of the second co-tenant.
externalidstring(100)Your own key. Scoped to your company.
When it fails
StatusCodeMeaning
400invalid_requestA required field was missing.
curl -X POST \
  'https://acme.nolapro.com/!/api/v2/leases' \
  -H 'Authorization: Bearer $NP_TOKEN' \
  -H 'Content-Type: application/json' \
  -H 'Idempotency-Key: your-unique-key' \
  -d '{
    "unitid": 104,
    "customerid": 104,
    "customer": "Example customer",
    "user": "Example user",
    "rentperiod": "Example rentperiod",
    "cotenant": "Example cotenant"
}'
Response 201
{
    "unitid": 104,
    "customerid": 104,
    "customer": "Example customer",
    "user": "Example user",
    "rentperiod": "Example rentperiod",
    "cotenant": "Example cotenant"
}
GET/leases/{id} 200404

Retrieve one record.

Requires scope properties:read.

Parameters
NameInTypeNotes
idrequiredpathintegerThe record id.
includequerystringComma-separated extras to embed. Only custom_fields is available: the extra fields this install has defined on the record. Off by default, and an unrecognised value is refused rather than ignored. See Conventions.
When it fails
StatusCodeMeaning
404not_foundNo record with that id.
curl \
  'https://acme.nolapro.com/!/api/v2/leases/104' \
  -H 'Authorization: Bearer $NP_TOKEN'
Response 200
{
    "unitid": 104,
    "customerid": 104,
    "customer": "Example customer",
    "user": "Example user",
    "rentperiod": "Example rentperiod",
    "cotenant": "Example cotenant"
}
PATCH/leases/{id} 200404

Update.

Requires scope properties:write.

Parameters
NameInTypeNotes
idrequiredpathintegerThe record id.
Idempotency-KeyheaderstringMakes the write safely retryable. Any unique string per logical operation; a UUID is fine. The failure this prevents is specific: the request succeeds, the response is lost to a timeout, you retry, and the customer is billed twice. With a key, the retry returns the original response - same status, same body, same id - and creates nothing. The body is part of the key's identity. Reusing a key with a different body is a bug on your side, not a retry, and answers 409 idempotency_replay rather than silently handing back the old response. Keys are remembered for 24 hours.
Body
FieldTypeDescription
idread-onlyintegerNolaPro id.
unitidintegerUnitid. Id only.
customeridintegerReference to customers, by id. Write either this or customer.
customerstring(30)Code for the referenced customer, instead of the id.
useridintegerUserid. Id only.
userstring(50)The name of the referenced genusers, instead of the id. Send this or userid, not both unless they agree.
rentperiodstring(5)Rent Period: W = weekly, SM = semi-monthly, M = monthly, S = semester, SY = semi-yearly, AY = academic year, Y = yearly.
cotenantstring(150)Co-tenant named on the lease.
cotenantemailstring(200)Email of the co-tenant.
begindatestringDate the lease begins.
enddatestringDate the lease ends.
moveindatestringDate the tenant moves in.
firstinvoicemonthsintegerMonths before the move-in date that the first invoice comes due; copied from the building default.
origenddatestringOriginal end date before any renewal or extension.
rentamountmoneystring(6dp)Stored as decimal(19,6).
petrentmoneystring(6dp)Stored as decimal(19,6).
lawncaremoneystring(6dp)Stored as decimal(19,6).
revenueglaccountidintegerReference to glaccounts, by id. Write either this or revenueglaccount.
revenueglaccountstring(20)The name of the referenced glaccounts, instead of the id. Send this or revenueglaccountid, not both unless they agree.
petrentglaccountidintegerReference to glaccounts, by id. Write either this or petrentglaccount.
petrentglaccountstring(20)The name of the referenced glaccounts, instead of the id. Send this or petrentglaccountid, not both unless they agree.
lawncareglaccountidintegerReference to glaccounts, by id. Write either this or lawncareglaccount.
lawncareglaccountstring(20)The name of the referenced glaccounts, instead of the id. Send this or lawncareglaccountid, not both unless they agree.
deferredrevenueglaccountidintegerReference to glaccounts, by id. Write either this or deferredrevenueglaccount.
deferredrevenueglaccountstring(20)The name of the referenced glaccounts, instead of the id. Send this or deferredrevenueglaccountid, not both unless they agree.
numpaymentsintegerNumber of rent payments over the lease term, derived from the rent period (e.g. 12 for monthly).
depositamountmoneystring(6dp)Stored as decimal(19,6).
depositcreditmoneystring(6dp)Stored as decimal(19,6).
depositreturnedmoneystring(6dp)Stored as decimal(19,6).
depositreturnedinvoiceidintegerInvoice the returned deposit was credited on. Write either this or depositreturnedinvoice.
depositreturnedinvoicestring(30)Invoice NUMBER (arinvoice.invoicenumber) instead of the id. The sibling of depositreturnedinvoiceid.
depositkeptvoucheridintegerDepositkeptvoucherid. Id only.
depositkeptvoucherstring(50)The voucher of the referenced gltransactions, instead of the id. Send this or depositkeptvoucherid, not both unless they agree.
depositglaccountidintegerReference to glaccounts, by id. Write either this or depositglaccount.
depositglaccountstring(20)The name of the referenced glaccounts, instead of the id. Send this or depositglaccountid, not both unless they agree.
overagecapmoneystring(6dp)Stored as decimal(19,6).
latefeemoneystring(6dp)Stored as decimal(19,6).
transferfeemoneystring(6dp)Stored as decimal(19,6).
notestextNotes. Stored as text, no practical length limit.
entrydateread-onlystringWhen the record was created.
cancelbooleanCancelled. Always a boolean on the wire, whatever integer width the column uses (D23).
reservationfeemoneystring(6dp)Stored as decimal(19,6).
reservationfeeglaccountidintegerReference to glaccounts, by id. Write either this or reservationfeeglaccount.
reservationfeeglaccountstring(20)The name of the referenced glaccounts, instead of the id. Send this or reservationfeeglaccountid, not both unless they agree.
petdepositmoneystring(6dp)Stored as decimal(19,6).
petdepositcreditmoneystring(6dp)Stored as decimal(19,6).
petdepositglaccountidintegerReference to glaccounts, by id. Write either this or petdepositglaccount.
petdepositglaccountstring(20)The name of the referenced glaccounts, instead of the id. Send this or petdepositglaccountid, not both unless they agree.
petdepositreturnedmoneystring(6dp)Stored as decimal(19,6).
proratedamountmoneystring(6dp)Stored as decimal(19,6).
prorateddaysintegerDays of prorated rent billed for a partial first period.
proratedtotaldaysintegerTotal days in the period the proration was computed against.
paymentplantextPaymentplan. Stored as text, no practical length limit.
leaseendedinteger1 once the lease has ended.
leaseendeddatestringDate the lease actually ended.
leaseendeduseridintegerReference to genusers, by id. Write either this or leaseendeduser.
leaseendeduserstring(50)The name of the referenced genusers, instead of the id. Send this or leaseendeduserid, not both unless they agree.
origleaseidintegerOrigleaseid. Id only.
renewedinteger1 when the lease was renewed into a newer lease.
transferredinteger1 when the lease was transferred to another unit or tenant.
transferredunitidintegerTransferredunitid. Id only.
autobillinteger1 generates rent invoices automatically each period (Auto Bill).
leasecodestring(30)Short code identifying the lease.
signedinteger1 once the signed lease is on file; unsigned leases are flagged on lease lists.
prepaymentamountmoneystring(6dp)Stored as decimal(19,6).
prepaymentdatestringDate the prepayment (e.g. deposit or first rent) was received.
cotenant2string(150)Second co-tenant named on the lease.
cotenant2emailstring(200)Email of the second co-tenant.
externalidstring(100)Your own key. Scoped to your company.
When it fails
StatusCodeMeaning
404not_foundNo record with that id.
curl -X PATCH \
  'https://acme.nolapro.com/!/api/v2/leases/104' \
  -H 'Authorization: Bearer $NP_TOKEN' \
  -H 'Content-Type: application/json' \
  -H 'Idempotency-Key: your-unique-key' \
  -d '{
    "unitid": 104,
    "customerid": 104,
    "customer": "Example customer",
    "user": "Example user",
    "rentperiod": "Example rentperiod",
    "cotenant": "Example cotenant"
}'
Response 200
{
    "unitid": 104,
    "customerid": 104,
    "customer": "Example customer",
    "user": "Example user",
    "rentperiod": "Example rentperiod",
    "cotenant": "Example cotenant"
}
DELETE/leases/{id} 200404

Cancel.

Requires scope properties:cancel.

Parameters
NameInTypeNotes
idrequiredpathintegerThe record id.
Idempotency-KeyheaderstringMakes the write safely retryable. Any unique string per logical operation; a UUID is fine. The failure this prevents is specific: the request succeeds, the response is lost to a timeout, you retry, and the customer is billed twice. With a key, the retry returns the original response - same status, same body, same id - and creates nothing. The body is part of the key's identity. Reusing a key with a different body is a bug on your side, not a retry, and answers 409 idempotency_replay rather than silently handing back the old response. Keys are remembered for 24 hours.
When it fails
StatusCodeMeaning
404not_foundNo record with that id.
curl -X DELETE \
  'https://acme.nolapro.com/!/api/v2/leases/104' \
  -H 'Authorization: Bearer $NP_TOKEN'
Response 200
{
    "unitid": 104,
    "customerid": 104,
    "customer": "Example customer",
    "user": "Example user",
    "rentperiod": "Example rentperiod",
    "cotenant": "Example cotenant"
}
GET/leases/{id}/attachments 200404

List files attached to a lease.

The attachments on this lease, newest first. Accepted filedefinitionid values: 32 (default 32). Metadata only - each file's bytes are at GET /attachments/{id}/content.

Requires scope properties:read.

Parameters
NameInTypeNotes
idrequiredpathintegerThe lease id.
filedefinitionidqueryintegerOnly files in this list. Accepted filedefinitionid values: 32 (default 32).
filecategoryidqueryintegerOnly files filed under this category.
filenamequerystringPartial match on the file name, case insensitive.
When it fails
StatusCodeMeaning
404not_foundNo lease with that id in this company.
curl \
  'https://acme.nolapro.com/!/api/v2/leases/104/attachments' \
  -H 'Authorization: Bearer $NP_TOKEN'
POST/leases/{id}/attachments 201400404409413415422

Attach a file to a lease.

multipart/form-data with one file part; see the AttachmentUpload schema for the other parts. Accepted filedefinitionid values: 32 (default 32). Answers 201 with the attachment's metadata and Location: /attachments/{id}. Check _meta.warnings for datatype_truncated and stored_under_parent_company.

Requires scope properties:write.

Parameters
NameInTypeNotes
idrequiredpathintegerThe lease id.
Idempotency-KeyheaderstringMakes the write safely retryable. Any unique string per logical operation; a UUID is fine. The failure this prevents is specific: the request succeeds, the response is lost to a timeout, you retry, and the customer is billed twice. With a key, the retry returns the original response - same status, same body, same id - and creates nothing. The body is part of the key's identity. Reusing a key with a different body is a bug on your side, not a retry, and answers 409 idempotency_replay rather than silently handing back the old response. Keys are remembered for 24 hours.
Body multipart/form-data
FieldTypeDescription
filerequiredstringThe file. Exactly one part named file; a second one, or file[], is 400 invalid_request so an idempotent retry can never half-succeed. Empty is refused. Over the cap (the smaller of APIV2_MAX_UPLOAD_BYTES, 64 MB by default, and PHP's upload_max_filesize / post_max_size) is 413 payload_too_large naming the limit that applied.
filenamestring(255)Overrides the part's file name.
notestextFree text shown beside the file.
filedefinitionidintegerOnly when the parent accepts more than one list. Anything the parent does not accept is 422 unknown_value naming the accepted ids.
filecategoryidintegerCategory by id.
filecategorystring(255)Category by name. Sent with filecategoryid and disagreeing is 422 conflicting_reference.
When it fails
StatusCodeMeaning
400unknown_parameterA form field that is not on the AttachmentUpload schema.
400invalid_typefiledefinitionid or filecategoryid that is not an integer.
404not_foundNo lease with that id in this company.
409upload_limit_reachedThis file list allows a fixed number of files on a lease and it is full. Remove one first.
413payload_too_largeThe file is over the cap. The body names the limit that applied.
415multipart_requiredThe body was not multipart/form-data.
422unknown_valuefiledefinitionid is not one this lease accepts, or the category does not exist in this company.
curl -X POST \
  'https://acme.nolapro.com/!/api/v2/leases/104/attachments' \
  -H 'Authorization: Bearer $NP_TOKEN' \
  -H 'Idempotency-Key: your-unique-key' \
  -F 'file=@grant-letter-signed.pdf' \
  -F 'filename=grant-letter-signed.pdf' \
  -F 'notes=Signed copy received 21 Sep' \
  -F 'filedefinitionid=8' \
  -F 'filecategory=Receipts'