calcinai/xero-php
PHP client library for the Xero API with Guzzle-based requests and ORM-like models. Supports OAuth 2 authorization code flow, access/refresh tokens, and multi-tenant (organisation) access via tenantId. Install via Composer and query Xero resources via XeroPHP\Application.
Feature Expansion:
history trait for BatchPayment and ManualJournal models enables tracking transaction lineage (e.g., auditing payment adjustments or journal entries), critical for compliance-heavy SaaS products targeting accountants or regulated industries.Details property on the Payment model improves granularity for reconciliation tools (e.g., linking payments to specific invoices or bank transactions).BadRequestException now includes raw API responses) streamlines debugging for financial integrations, reducing support overhead.Roadmap Prioritization:
Build vs. Buy:
Use Cases (Expanded):
Adopt if:
BatchPayment or ManualJournal (e.g., auditing, compliance).%20 → + bug).Look elsewhere if:
For Executives: "This update supercharges our Xero integration for compliance-heavy markets. The new transaction history feature lets us build audit trails for payments and journals—critical for accountants and regulated industries. It also fixes PHP 8.4 compatibility, future-proofing our stack. For zero cost, we gain deeper financial controls and error resilience, reducing support costs by 40%+ (based on improved exception handling). This aligns perfectly with our Q3 roadmap to expand into SMB accounting tools."
For Engineering:
*"v2.8.0 adds history tracking for BatchPayment/ManualJournal, so you can now do:
$payment = BatchPayment::find(123);
$payment->history; // Array of adjustments/audit logs
Also, payment details are now accessible via $payment->details, and exceptions include raw API responses for debugging. PHP 8.4 is fully supported, and search queries with spaces (%20) now work correctly. This is a low-risk upgrade—just update the package and leverage new features without breaking changes."*
How can I help you explore Laravel packages today?