Skip to content

feat: Bank Transfers: soft-delete, status, and tracking categories#822

Merged
shehanster merged 5 commits into
XeroAPI:masterfrom
jeremy-drummond-xero:feature/transfers-uplift
Jul 13, 2026
Merged

feat: Bank Transfers: soft-delete, status, and tracking categories#822
shehanster merged 5 commits into
XeroAPI:masterfrom
jeremy-drummond-xero:feature/transfers-uplift

Conversation

@jeremy-drummond-xero

Copy link
Copy Markdown
Contributor

Overview

Extends the Accounting OpenAPI spec for /BankTransfers to reflect new endpoint capabilities: soft-deleting transfers (single and bulk), a Status field on responses, and tracking categories on reads and create.

Changes

New Status field (BankTransfer schema, read-only)

  • Added to all GET and create responses. Values: AUTHORISED or DELETED.

New tracking categories (BankTransfer schema)

  • Added FromTracking and ToTracking arrays, surfaced on GET (index + by-id) and create responses.
  • Introduces a TrackingReference schema: TrackingCategoryID + TrackingOptionID on write; resolved Name + Option echoed back on read (read-only). Max 2 per account.

Soft-delete operations (two new POST operations)

  • deleteBankTransferPOST /BankTransfers/{BankTransferID}, single transfer; body carries Status: DELETED (BankTransferDelete schema).
  • deleteBankTransfersPOST /BankTransfers, bulk array of {BankTransferID, Status} (BankTransfersDelete schema).
  • Both return the deleted transfer(s) with Status: DELETED.

New includeDeleted query parameter (GET /BankTransfers)

  • Opt-in boolean to include DELETED transfers in the index response. Default behaviour (deleted excluded) is unchanged.

Comment thread xero_accounting.yaml
Comment thread xero_accounting.yaml
jeremy-drummond-xero and others added 4 commits June 17, 2026 11:50
…sfers example

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…d BatchPayment

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…e IDs

Add BankTransferDeleteByUrlParam for the single delete-by-ID endpoint so the
URL-param path only requires Status, and make BankTransferID required on the
bulk BankTransferDelete schema - matching the BatchPayment delete pattern.

Make TrackingCategoryID and TrackingOptionID required on TrackingReference
since they must be supplied on PUT and are always returned on GET when
tracking is specified.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

@shehanster shehanster left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@shehanster
shehanster merged commit ae8c5df into XeroAPI:master Jul 13, 2026
5 checks passed
@xero-public-bot

Copy link
Copy Markdown

🎉 This PR is included in version 16.1.0 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants