From 6fe9130cc85b984fd310363fb0fbc726eec74c89 Mon Sep 17 00:00:00 2001 From: sli-o1 <60360476+sli-o1@users.noreply.github.com> Date: Mon, 24 Aug 2026 15:53:22 -0400 Subject: [PATCH 1/2] BILLS-6409: updated /invoices endpoints to include RoundingAmount and EnteredTotal fields in API contracts for ACCPAY and ACCREC document types. --- xero_accounting.yaml | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/xero_accounting.yaml b/xero_accounting.yaml index 3d75856bc..dae3584f6 100644 --- a/xero_accounting.yaml +++ b/xero_accounting.yaml @@ -22474,20 +22474,17 @@ components: readOnly: true x-is-money: true SubTotal: - description: Total of invoice excluding taxes - readOnly: true + description: Total of invoice excluding taxes. Calculated automatically by Xero from the invoice's line items. Only for ACCPAY and ACCREC invoices, where this opt-in capability is enabled for your organisation, can SubTotal be supplied on write – on a SUBMITTED or AUTHORISED invoice supplied together with TotalTax and Total, it is validated against the calculated line item totals (see RoundingAmount); it is ignored in all other cases. This write behaviour, and the returned value reflecting it, only applies to the Create and Update endpoints (POST/PUT) and to retrieving a single invoice by ID (GET by ID) – it does not apply when listing invoices (GET) type: number format: double x-is-money: true TotalTax: - description: Total tax on invoice - readOnly: true + description: Total tax on invoice. Calculated automatically by Xero from the invoice's line items. Only for ACCPAY and ACCREC invoices, where this opt-in capability is enabled for your organisation, can TotalTax be supplied on write – on a SUBMITTED or AUTHORISED invoice supplied together with SubTotal and Total, it is validated against the calculated line item totals (see RoundingAmount); it is ignored in all other cases. This write behaviour, and the returned value reflecting it, only applies to the Create and Update endpoints (POST/PUT) and to retrieving a single invoice by ID (GET by ID) – it does not apply when listing invoices (GET) type: number format: double x-is-money: true Total: - description: Total of Invoice tax inclusive (i.e. SubTotal + TotalTax). This will be ignored if it doesn’t equal the sum of the LineAmounts - readOnly: true + description: Total of Invoice tax inclusive (i.e. SubTotal + TotalTax + RoundingAmount). Calculated automatically by Xero from the invoice's line items. Only for ACCPAY and ACCREC invoices, where this opt-in capability is enabled for your organisation, can Total be supplied on write – on a SUBMITTED or AUTHORISED invoice supplied together with SubTotal and TotalTax, it is validated against the calculated line item totals plus RoundingAmount; in all other cases this will be ignored if it doesn’t equal the sum of the LineAmounts. This write behaviour, and the returned value reflecting it, only applies to the Create and Update endpoints (POST/PUT) and to retrieving a single invoice by ID (GET by ID) – it does not apply when listing invoices (GET) type: number format: double x-is-money: true @@ -22497,6 +22494,16 @@ components: type: number format: double x-is-money: true + RoundingAmount: + description: An optional rounding adjustment added to SubTotal + TotalTax to give Total (i.e. Total = SubTotal + TotalTax + RoundingAmount). Only applies to ACCPAY and ACCREC invoices, and only if this opt-in capability has been enabled for your organisation. Not validated while the invoice is DRAFT. For SUBMITTED and AUTHORISED invoices, RoundingAmount is only applied when SubTotal, TotalTax and Total are all supplied together, and must be between -0.10 and 0.10 – values outside this range are rejected with a validation error (on DRAFT invoices, an out-of-range value is ignored instead). This field is only settable and only returned via the Create and Update endpoints (POST/PUT) and when retrieving a single invoice by ID (GET by ID) – it is not returned when listing invoices (GET) + type: number + format: double + x-is-money: true + EnteredTotal: + description: The total amount as originally entered for the invoice, before any RoundingAmount adjustment is applied. Only applies to ACCPAY and ACCREC invoices, and only if this opt-in capability has been enabled for your organisation. Can only be set while the invoice is DRAFT; once the invoice is no longer DRAFT this reflects Total. This field is only settable and only returned via the Create and Update endpoints (POST/PUT) and when retrieving a single invoice by ID (GET by ID) – it is not returned when listing invoices (GET) + type: number + format: double + x-is-money: true InvoiceID: description: Xero generated unique identifier for invoice type: string From 8cb8889b31479157ad32806907d0caa3b44ea6ea Mon Sep 17 00:00:00 2001 From: sli-o1 <60360476+sli-o1@users.noreply.github.com> Date: Thu, 3 Sep 2026 10:45:59 -0400 Subject: [PATCH 2/2] feat: BILLS-6409 updated /invoices endpoints with RoundingAmount and EnteredTotal --- xero_accounting.yaml | 57 ++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 52 insertions(+), 5 deletions(-) diff --git a/xero_accounting.yaml b/xero_accounting.yaml index c5edbeb4e..fec7cfb57 100644 --- a/xero_accounting.yaml +++ b/xero_accounting.yaml @@ -22474,17 +22474,45 @@ components: readOnly: true x-is-money: true SubTotal: - description: Total of invoice excluding taxes. Calculated automatically by Xero from the invoice's line items. Only for ACCPAY and ACCREC invoices, where this opt-in capability is enabled for your organisation, can SubTotal be supplied on write – on a SUBMITTED or AUTHORISED invoice supplied together with TotalTax and Total, it is validated against the calculated line item totals (see RoundingAmount); it is ignored in all other cases. This write behaviour, and the returned value reflecting it, only applies to the Create and Update endpoints (POST/PUT) and to retrieving a single invoice by ID (GET by ID) – it does not apply when listing invoices (GET) + description: > + Total of invoice excluding taxes. Calculated automatically by Xero from the + invoice's line items. Only for ACCPAY and ACCREC invoices, where this + opt-in capability is enabled for your organisation, can SubTotal be supplied + on write – on a SUBMITTED or AUTHORISED invoice supplied together with + TotalTax and Total, it is validated against the calculated line item totals + (see RoundingAmount); it is ignored in all other cases. This write behaviour, + and the returned value reflecting it, only applies to the Create and Update + endpoints (POST/PUT) and to retrieving a single invoice by ID (GET by ID) – + it does not apply when listing invoices (GET) type: number format: double x-is-money: true TotalTax: - description: Total tax on invoice. Calculated automatically by Xero from the invoice's line items. Only for ACCPAY and ACCREC invoices, where this opt-in capability is enabled for your organisation, can TotalTax be supplied on write – on a SUBMITTED or AUTHORISED invoice supplied together with SubTotal and Total, it is validated against the calculated line item totals (see RoundingAmount); it is ignored in all other cases. This write behaviour, and the returned value reflecting it, only applies to the Create and Update endpoints (POST/PUT) and to retrieving a single invoice by ID (GET by ID) – it does not apply when listing invoices (GET) + description: > + Total tax on invoice. Calculated automatically by Xero from the invoice's + line items. Only for ACCPAY and ACCREC invoices, where this opt-in capability + is enabled for your organisation, can TotalTax be supplied on write – on a + SUBMITTED or AUTHORISED invoice supplied together with SubTotal and Total, it + is validated against the calculated line item totals (see RoundingAmount); it + is ignored in all other cases. This write behaviour, and the returned value + reflecting it, only applies to the Create and Update endpoints (POST/PUT) and + to retrieving a single invoice by ID (GET by ID) – it does not apply when + listing invoices (GET) type: number format: double x-is-money: true Total: - description: Total of Invoice tax inclusive (i.e. SubTotal + TotalTax + RoundingAmount). Calculated automatically by Xero from the invoice's line items. Only for ACCPAY and ACCREC invoices, where this opt-in capability is enabled for your organisation, can Total be supplied on write – on a SUBMITTED or AUTHORISED invoice supplied together with SubTotal and TotalTax, it is validated against the calculated line item totals plus RoundingAmount; in all other cases this will be ignored if it doesn’t equal the sum of the LineAmounts. This write behaviour, and the returned value reflecting it, only applies to the Create and Update endpoints (POST/PUT) and to retrieving a single invoice by ID (GET by ID) – it does not apply when listing invoices (GET) + description: > + Total of Invoice tax inclusive (i.e. SubTotal + TotalTax + RoundingAmount). + Calculated automatically by Xero from the invoice's line items. Only for + ACCPAY and ACCREC invoices, where this opt-in capability is enabled for your + organisation, can Total be supplied on write – on a SUBMITTED or AUTHORISED + invoice supplied together with SubTotal and TotalTax, it is validated against + the calculated line item totals plus RoundingAmount; in all other cases this + will be ignored if it does not equal the sum of the LineAmounts. This write + behaviour, and the returned value reflecting it, only applies to the Create + and Update endpoints (POST/PUT) and to retrieving a single invoice by ID (GET + by ID) – it does not apply when listing invoices (GET) type: number format: double x-is-money: true @@ -22495,12 +22523,31 @@ components: format: double x-is-money: true RoundingAmount: - description: An optional rounding adjustment added to SubTotal + TotalTax to give Total (i.e. Total = SubTotal + TotalTax + RoundingAmount). Only applies to ACCPAY and ACCREC invoices, and only if this opt-in capability has been enabled for your organisation. Not validated while the invoice is DRAFT. For SUBMITTED and AUTHORISED invoices, RoundingAmount is only applied when SubTotal, TotalTax and Total are all supplied together, and must be between -0.10 and 0.10 – values outside this range are rejected with a validation error (on DRAFT invoices, an out-of-range value is ignored instead). This field is only settable and only returned via the Create and Update endpoints (POST/PUT) and when retrieving a single invoice by ID (GET by ID) – it is not returned when listing invoices (GET) + description: > + An optional rounding adjustment added to SubTotal + TotalTax to give Total + (i.e. Total = SubTotal + TotalTax + RoundingAmount). Only applies to ACCPAY + and ACCREC invoices, and only if this opt-in capability has been enabled for + your organisation. Not validated while the invoice is DRAFT. For SUBMITTED and + AUTHORISED invoices, RoundingAmount is only applied when SubTotal, TotalTax + and Total are all supplied together, and must be between -0.10 and 0.10 – + values outside this range are rejected with a validation error (on DRAFT + invoices, an out-of-range value is ignored instead). This field is only + settable and only returned via the Create and Update endpoints (POST/PUT) and + when retrieving a single invoice by ID (GET by ID) – it is not returned when + listing invoices (GET) type: number format: double x-is-money: true EnteredTotal: - description: The total amount as originally entered for the invoice, before any RoundingAmount adjustment is applied. Only applies to ACCPAY and ACCREC invoices, and only if this opt-in capability has been enabled for your organisation. Can only be set while the invoice is DRAFT; once the invoice is no longer DRAFT this reflects Total. This field is only settable and only returned via the Create and Update endpoints (POST/PUT) and when retrieving a single invoice by ID (GET by ID) – it is not returned when listing invoices (GET) + description: > + The total amount as originally entered for the invoice, before any + RoundingAmount adjustment is applied. Only applies to ACCPAY and ACCREC + invoices, and only if this opt-in capability has been enabled for your + organisation. Can only be set while the invoice is DRAFT; once the invoice + is no longer DRAFT this reflects Total. This field is only settable and only + returned via the Create and Update endpoints (POST/PUT) and when retrieving a + single invoice by ID (GET by ID) – it is not returned when listing invoices + (GET) type: number format: double x-is-money: true