Configuration, connections, logs & status
Secrets are masked. Leave a secret blank to keep it unchanged.
“Connected” only means a token is stored. If deletes fail for one org with 401, remove that connection and re-add it, signing in with the correct Xero login and ticking the organisation when Xero asks.
"LineItemID": "50794195-f840-47c0-9058-86944d9ab723"
}
],
"SubTotal": 96.30,
"TotalTax": 0.00,
"Total": 96.30,
"CurrencyCode": "AUD",
"ValidationErrors": [
{
"Message": "The document DueDate field must be specified."
},
{
"Message": "Account code or ID must be specified"
},
{
"Message": "The TaxType field is mandatory"
}
]
}
]
}
2026-08-12 01:56:23 | INFO | app.report.bill_reverse | Authorising bill 106044541 (29769ace-f47f-41cb-845e-27871a272fe9) status=DRAFT before credit-note reverse
2026-08-12 01:56:23 | ERROR | app.main | Credit-note reverse failed for d6cdefa1-7400-45e5-9538-5b08419945f7/29769ace-f47f-41cb-845e-27871a272fe9
Traceback (most recent call last):
File "/root/cashreport/app/main.py", line 427, in api_bill_credit_note_reverse
result = reverse_bill_with_credit_note(_client(), tenant_id, invoice_id)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/root/cashreport/app/report/bill_reverse.py", line 166, in reverse_bill_with_credit_note
client.authorise_invoice(tenant_id, invoice_id)
File "/root/cashreport/app/xero/client.py", line 757, in authorise_invoice
return self._post_for_tenant(
^^^^^^^^^^^^^^^^^^^^^^
File "/root/cashreport/app/xero/client.py", line 264, in _post_for_tenant
return self._request("POST", url, conn_id, tenant_id=tenant_id, json_body=json_body)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/root/cashreport/app/xero/client.py", line 230, in _request
raise XeroAPIError(f"Xero API error {code} on {url}: {resp.text}")
app.xero.client.XeroAPIError: Xero API error 400 on https://api.xero.com/api.xro/2.0/Invoices: {
"ErrorNumber": 10,
"Type": "ValidationException",
"Message": "A validation exception occurred",
"Elements": [
{
"Type": "ACCPAY",
"InvoiceID": "29769ace-f47f-41cb-845e-27871a272fe9",
"Payments": [],
"CreditNotes": [],
"Prepayments": [],
"Overpayments": [],
"IsDiscounted": false,
"InvoiceAddresses": [],
"HasErrors": true,
"InvoicePaymentServices": [],
"Contact": {
"ContactID": "edd89033-c672-48d6-9ce4-b5948910b821",
"Addresses": [],
"Phones": [],
"ContactGroups": [],
"ContactPersons": [],
"HasValidationErrors": false
},
"DateString": "2026-07-23T00:00:00",
"Date": "\/Date(1784764800000+0000)\/",
"Status": "AUTHORISED",
"LineAmountTypes": "Inclusive",
"LineItems": [
{
"UnitAmount": 7.73,
"LineAmount": 7.73,
"Tracking": [],
"Quantity": 1.0000,
"LineItemID": "1ac2e5b8-c8f2-4a47-9210-f6c906267ed5"
}
],
"SubTotal": 7.73,
"TotalTax": 0.00,
"Total": 7.73,
"CurrencyCode": "AUD",
"ValidationErrors": [
{
"Message": "The document DueDate field must be specified."
},
{
"Message": "Account code or ID must be specified"
},
{
"Message": "The TaxType field is mandatory"
}
]
}
]
}
2026-08-12 01:58:53 | INFO | app.report.bill_reverse | Authorising bill 237898471 (74617b00-f56b-416a-87bd-f8f628392022) status=DRAFT before credit-note reverse
2026-08-12 01:58:55 | INFO | app.report.bill_reverse | Creating ACCPAYCREDIT for bill 237898471 amount=96.30 date=2026-02-17 (authorised_first=True)
2026-08-12 01:58:56 | INFO | app.report.bill_reverse | Allocating credit note 8b7ef5f0-fb4f-4ebe-995b-91fe4273ae6e → bill 237898471 amount=96.30 date=2026-02-17
2026-08-12 02:02:39 | INFO | app.report.aggregate | Built financials for Royal Vending NZ: cash=98411 recv=7858 bills7=40000 net=62377
2026-08-12 02:02:39 | INFO | app.report.aggregate | Built financials for Royal Vending Au: cash=236702 recv=70199 bills7=78317 net=101376
2026-08-12 02:02:39 | INFO | app.report.aggregate | Built financials for RV EVO: cash=30100 recv=0 bills7=0 net=29100
2026-08-12 02:02:39 | INFO | app.report.aggregate | Built financials for Bryze Global: cash=10183 recv=9371 bills7=262 net=19293
2026-08-12 02:02:40 | INFO | app.main | Generated Cash_Report_proposed_cash_report_2026-08-12_0202.pdf (4 orgs, format=proposed_cash_report, sections=12)
2026-08-12 02:26:49 | INFO | app.xero.auth | Refreshing token for connection d4792201-637f-4b37-930d-392ed6b00322 (Royal Vending NZ)
2026-08-12 02:26:50 | INFO | app.xero.auth | Refreshing token for connection 16c30545-62cf-4467-9eb3-31562a45740a (Bryze Global)
2026-08-12 11:35:47 | INFO | app.xero.auth | Refreshing token for connection d4792201-637f-4b37-930d-392ed6b00322 (Royal Vending NZ)
2026-08-12 11:35:48 | INFO | app.xero.auth | Refreshing token for connection 16c30545-62cf-4467-9eb3-31562a45740a (Bryze Global)
2026-08-12 12:25:10 | INFO | app.xero.auth | Refreshing token for connection d4792201-637f-4b37-930d-392ed6b00322 (Royal Vending NZ)
2026-08-12 12:25:11 | INFO | app.xero.auth | Refreshing token for connection 16c30545-62cf-4467-9eb3-31562a45740a (Bryze Global)
2026-08-12 20:31:06 | INFO | app.xero.auth | Refreshing token for connection d4792201-637f-4b37-930d-392ed6b00322 (Royal Vending NZ)
2026-08-12 20:31:07 | INFO | app.xero.auth | Refreshing token for connection 16c30545-62cf-4467-9eb3-31562a45740a (Bryze Global)
2026-08-12 22:02:31 | INFO | app.xero.auth | Refreshing token for connection d4792201-637f-4b37-930d-392ed6b00322 (Royal Vending NZ)
2026-08-12 22:02:32 | INFO | app.xero.auth | Refreshing token for connection 16c30545-62cf-4467-9eb3-31562a45740a (Bryze Global)
2026-08-13 01:06:45 | INFO | app.xero.auth | Refreshing token for connection d4792201-637f-4b37-930d-392ed6b00322 (Royal Vending NZ)
2026-08-13 01:06:46 | INFO | app.xero.auth | Refreshing token for connection 16c30545-62cf-4467-9eb3-31562a45740a (Bryze Global)
2026-08-13 02:30:54 | INFO | app.xero.auth | Refreshing token for connection d4792201-637f-4b37-930d-392ed6b00322 (Royal Vending NZ)
2026-08-13 02:30:56 | INFO | app.xero.auth | Refreshing token for connection 16c30545-62cf-4467-9eb3-31562a45740a (Bryze Global)
2026-08-13 04:03:07 | INFO | app.xero.auth | Refreshing token for connection d4792201-637f-4b37-930d-392ed6b00322 (Royal Vending NZ)
2026-08-13 04:03:07 | INFO | app.xero.auth | Refreshing token for connection 16c30545-62cf-4467-9eb3-31562a45740a (Bryze Global)
2026-08-13 06:02:21 | INFO | app.xero.auth | Refreshing token for connection d4792201-637f-4b37-930d-392ed6b00322 (Royal Vending NZ)
2026-08-13 06:02:23 | INFO | app.xero.auth | Refreshing token for connection 16c30545-62cf-4467-9eb3-31562a45740a (Bryze Global)
2026-08-13 06:34:02 | INFO | app.xero.auth | Refreshing token for connection d4792201-637f-4b37-930d-392ed6b00322 (Royal Vending NZ)
2026-08-13 06:34:02 | INFO | app.xero.auth | Refreshing token for connection 16c30545-62cf-4467-9eb3-31562a45740a (Bryze Global)
2026-08-13 13:15:16 | INFO | app.xero.auth | Refreshing token for connection d4792201-637f-4b37-930d-392ed6b00322 (Royal Vending NZ)
2026-08-13 13:15:17 | INFO | app.xero.auth | Refreshing token for connection 16c30545-62cf-4467-9eb3-31562a45740a (Bryze Global)
2026-08-13 16:03:05 | INFO | app.xero.auth | Refreshing token for connection d4792201-637f-4b37-930d-392ed6b00322 (Royal Vending NZ)
2026-08-13 16:03:05 | INFO | app.xero.auth | Refreshing token for connection 16c30545-62cf-4467-9eb3-31562a45740a (Bryze Global)
2026-08-13 17:44:38 | INFO | app.xero.auth | Refreshing token for connection d4792201-637f-4b37-930d-392ed6b00322 (Royal Vending NZ)
2026-08-13 17:44:39 | INFO | app.xero.auth | Refreshing token for connection 16c30545-62cf-4467-9eb3-31562a45740a (Bryze Global)
2026-08-13 19:00:02 | INFO | app.xero.auth | Refreshing token for connection d4792201-637f-4b37-930d-392ed6b00322 (Royal Vending NZ)
2026-08-13 19:00:07 | INFO | app.xero.auth | Refreshing token for connection 16c30545-62cf-4467-9eb3-31562a45740a (Bryze Global)
2026-08-14 01:19:09 | INFO | app.xero.auth | Refreshing token for connection d4792201-637f-4b37-930d-392ed6b00322 (Royal Vending NZ)
2026-08-14 01:19:10 | INFO | app.xero.auth | Refreshing token for connection 16c30545-62cf-4467-9eb3-31562a45740a (Bryze Global)
2026-08-14 01:27:31 | INFO | app.main | Control panel updated .env keys: GOOGLE_SHEETS_SPREADSHEET_ID, ANTHROPIC_MODEL, XERO_REDIRECT_URI, TRELLO_KEY, TRELLO_TOKEN, GOOGLE_SERVICE_ACCOUNT_FILE, XERO_CLIENT_ID, CASHREPORT_PORT, XERO_SCOPES
2026-08-14 01:27:38 | INFO | app.main | Restart requested from control panel; exiting for systemd to respawn.
2026-08-14 01:49:26 | INFO | app.xero.auth | Refreshing token for connection d4792201-637f-4b37-930d-392ed6b00322 (Royal Vending NZ)
2026-08-14 01:49:27 | INFO | app.xero.auth | Refreshing token for connection 16c30545-62cf-4467-9eb3-31562a45740a (Bryze Global)
2026-08-14 02:33:33 | INFO | app.xero.auth | Refreshing token for connection d4792201-637f-4b37-930d-392ed6b00322 (Royal Vending NZ)
2026-08-14 02:33:34 | INFO | app.xero.auth | Refreshing token for connection 16c30545-62cf-4467-9eb3-31562a45740a (Bryze Global)
2026-08-14 03:10:08 | INFO | app.xero.auth | Refreshing token for connection d4792201-637f-4b37-930d-392ed6b00322 (Royal Vending NZ)
2026-08-14 03:10:09 | INFO | app.xero.auth | Refreshing token for connection 16c30545-62cf-4467-9eb3-31562a45740a (Bryze Global)
2026-08-14 03:39:08 | INFO | app.main | Bulk-saved manual inputs for 4 organisations
2026-08-14 03:39:26 | INFO | app.xero.auth | Refreshing token for connection d4792201-637f-4b37-930d-392ed6b00322 (Royal Vending NZ)
2026-08-14 03:39:27 | INFO | app.xero.auth | Refreshing token for connection 16c30545-62cf-4467-9eb3-31562a45740a (Bryze Global)
2026-08-14 03:40:43 | INFO | app.main | Bulk-saved manual inputs for 4 organisations
2026-08-14 03:42:25 | INFO | app.report.aggregate | Built financials for Royal Vending NZ: cash=98412 recv=7636 bills7=3892 net=102156
2026-08-14 03:42:25 | INFO | app.report.aggregate | Built financials for Royal Vending Au: cash=186348 recv=8800 bills7=87962 net=-36627
2026-08-14 03:42:25 | INFO | app.report.aggregate | Built financials for RV EVO: cash=39895 recv=0 bills7=0 net=38895
2026-08-14 03:42:25 | INFO | app.report.aggregate | Built financials for Bryze Global: cash=19554 recv=18207 bills7=737 net=35025
2026-08-14 03:42:25 | INFO | app.main | Generated Cash_Report_proposed_cash_report_2026-08-14_0342.pdf (4 orgs, format=proposed_cash_report, sections=13)
2026-08-14 03:42:54 | INFO | app.report.aggregate | Built financials for Royal Vending NZ: cash=98412 recv=7636 bills7=3892 net=102156
2026-08-14 03:42:54 | INFO | app.report.aggregate | Built financials for Royal Vending Au: cash=186348 recv=8800 bills7=35462 net=15873
2026-08-14 03:42:54 | INFO | app.report.aggregate | Built financials for RV EVO: cash=39895 recv=0 bills7=0 net=38895
2026-08-14 03:42:54 | INFO | app.report.aggregate | Built financials for Bryze Global: cash=19554 recv=18207 bills7=737 net=35025
2026-08-14 03:42:54 | INFO | app.main | Generated Cash_Report_proposed_cash_report_2026-08-14_0342.pdf (4 orgs, format=proposed_cash_report, sections=13)
2026-08-14 05:02:16 | INFO | app.xero.auth | Refreshing token for connection d4792201-637f-4b37-930d-392ed6b00322 (Royal Vending NZ)
2026-08-14 05:02:17 | INFO | app.xero.auth | Refreshing token for connection 16c30545-62cf-4467-9eb3-31562a45740a (Bryze Global)
2026-08-14 05:32:38 | INFO | app.xero.auth | Refreshing token for connection d4792201-637f-4b37-930d-392ed6b00322 (Royal Vending NZ)
2026-08-14 05:32:38 | INFO | app.xero.auth | Refreshing token for connection 16c30545-62cf-4467-9eb3-31562a45740a (Bryze Global)
2026-08-14 06:24:33 | INFO | app.xero.auth | Refreshing token for connection d4792201-637f-4b37-930d-392ed6b00322 (Royal Vending NZ)
2026-08-14 06:24:34 | INFO | app.xero.auth | Refreshing token for connection 16c30545-62cf-4467-9eb3-31562a45740a (Bryze Global)
2026-08-14 07:02:49 | INFO | app.xero.auth | Refreshing token for connection d4792201-637f-4b37-930d-392ed6b00322 (Royal Vending NZ)
2026-08-14 07:02:50 | INFO | app.xero.auth | Refreshing token for connection 16c30545-62cf-4467-9eb3-31562a45740a (Bryze Global)
2026-08-14 07:45:40 | INFO | app.xero.auth | Refreshing token for connection d4792201-637f-4b37-930d-392ed6b00322 (Royal Vending NZ)
2026-08-14 07:45:41 | INFO | app.xero.auth | Refreshing token for connection 16c30545-62cf-4467-9eb3-31562a45740a (Bryze Global)
2026-08-14 08:48:29 | INFO | app.xero.auth | Refreshing token for connection d4792201-637f-4b37-930d-392ed6b00322 (Royal Vending NZ)
2026-08-14 08:48:29 | INFO | app.xero.auth | Refreshing token for connection 16c30545-62cf-4467-9eb3-31562a45740a (Bryze Global)
2026-08-14 09:35:02 | INFO | app.xero.auth | Refreshing token for connection d4792201-637f-4b37-930d-392ed6b00322 (Royal Vending NZ)
2026-08-14 09:35:03 | INFO | app.xero.auth | Refreshing token for connection 16c30545-62cf-4467-9eb3-31562a45740a (Bryze Global)
2026-08-14 10:48:43 | INFO | app.xero.auth | Refreshing token for connection d4792201-637f-4b37-930d-392ed6b00322 (Royal Vending NZ)
2026-08-14 10:48:44 | INFO | app.xero.auth | Refreshing token for connection 16c30545-62cf-4467-9eb3-31562a45740a (Bryze Global)
2026-08-14 13:27:28 | INFO | app.xero.auth | Refreshing token for connection d4792201-637f-4b37-930d-392ed6b00322 (Royal Vending NZ)
2026-08-14 13:27:29 | INFO | app.xero.auth | Refreshing token for connection 16c30545-62cf-4467-9eb3-31562a45740a (Bryze Global)
2026-08-14 15:30:41 | INFO | app.xero.auth | Refreshing token for connection d4792201-637f-4b37-930d-392ed6b00322 (Royal Vending NZ)
2026-08-14 15:30:42 | INFO | app.xero.auth | Refreshing token for connection 16c30545-62cf-4467-9eb3-31562a45740a (Bryze Global)
2026-08-14 19:13:06 | INFO | app.xero.auth | Refreshing token for connection d4792201-637f-4b37-930d-392ed6b00322 (Royal Vending NZ)
2026-08-14 19:13:07 | INFO | app.xero.auth | Refreshing token for connection 16c30545-62cf-4467-9eb3-31562a45740a (Bryze Global)
2026-08-14 19:42:16 | INFO | app.xero.auth | Refreshing token for connection d4792201-637f-4b37-930d-392ed6b00322 (Royal Vending NZ)
2026-08-14 19:42:17 | INFO | app.xero.auth | Refreshing token for connection 16c30545-62cf-4467-9eb3-31562a45740a (Bryze Global)
2026-08-14 20:16:17 | INFO | app.xero.auth | Refreshing token for connection d4792201-637f-4b37-930d-392ed6b00322 (Royal Vending NZ)
2026-08-14 20:16:20 | INFO | app.xero.auth | Refreshing token for connection 16c30545-62cf-4467-9eb3-31562a45740a (Bryze Global)
2026-08-14 20:16:33 | INFO | app.db.entities | Upserted entity Royal Vending NZ (1981f830-04c0-402f-b182-897019a4a102)
2026-08-14 20:16:33 | INFO | app.db.entities | Upserted entity Royal Vending Au (d6cdefa1-7400-45e5-9538-5b08419945f7)
2026-08-14 20:16:33 | INFO | app.db.entities | Upserted entity RV EVO (fd5ba830-d27d-4bf9-afa2-b7a519fdcbe3)
2026-08-14 20:16:33 | INFO | app.db.entities | Upserted entity Bryze Global (2d4fd48a-4717-4b27-8dfe-ac6e9e5f489e)
2026-08-14 20:48:34 | INFO | app.xero.auth | Refreshing token for connection d4792201-637f-4b37-930d-392ed6b00322 (Royal Vending NZ)
2026-08-14 20:48:35 | INFO | app.xero.auth | Refreshing token for connection 16c30545-62cf-4467-9eb3-31562a45740a (Bryze Global)
2026-08-14 20:49:13 | INFO | app.db.entities | Upserted entity Royal Vending NZ (1981f830-04c0-402f-b182-897019a4a102)
2026-08-14 20:49:13 | INFO | app.db.entities | Upserted entity Royal Vending Au (d6cdefa1-7400-45e5-9538-5b08419945f7)
2026-08-14 20:49:13 | INFO | app.db.entities | Upserted entity RV EVO (fd5ba830-d27d-4bf9-afa2-b7a519fdcbe3)
2026-08-14 20:49:13 | INFO | app.db.entities | Upserted entity Bryze Global (2d4fd48a-4717-4b27-8dfe-ac6e9e5f489e)
2026-08-14 20:49:14 | INFO | app.db.entities | Upserted entity Royal Vending NZ (1981f830-04c0-402f-b182-897019a4a102)
2026-08-14 20:49:14 | INFO | app.db.entities | Upserted entity Royal Vending Au (d6cdefa1-7400-45e5-9538-5b08419945f7)
2026-08-14 20:49:14 | INFO | app.db.entities | Upserted entity RV EVO (fd5ba830-d27d-4bf9-afa2-b7a519fdcbe3)
2026-08-14 20:49:14 | INFO | app.db.entities | Upserted entity Bryze Global (2d4fd48a-4717-4b27-8dfe-ac6e9e5f489e)
2026-08-14 21:25:05 | INFO | app.xero.auth | Refreshing token for connection d4792201-637f-4b37-930d-392ed6b00322 (Royal Vending NZ)
2026-08-14 21:25:06 | INFO | app.xero.auth | Refreshing token for connection 16c30545-62cf-4467-9eb3-31562a45740a (Bryze Global)
2026-08-14 21:25:07 | INFO | app.db.entities | Upserted entity Royal Vending NZ (1981f830-04c0-402f-b182-897019a4a102)
2026-08-14 21:25:07 | INFO | app.db.entities | Upserted entity Royal Vending Au (d6cdefa1-7400-45e5-9538-5b08419945f7)
2026-08-14 21:25:07 | INFO | app.db.entities | Upserted entity RV EVO (fd5ba830-d27d-4bf9-afa2-b7a519fdcbe3)
2026-08-14 21:25:07 | INFO | app.db.entities | Upserted entity Bryze Global (2d4fd48a-4717-4b27-8dfe-ac6e9e5f489e)
2026-08-14 21:26:23 | INFO | app.xero.auth | Refreshing token for connection d4792201-637f-4b37-930d-392ed6b00322 (Royal Vending NZ)
2026-08-14 21:26:25 | INFO | app.xero.auth | Refreshing token for connection 16c30545-62cf-4467-9eb3-31562a45740a (Bryze Global)