Skip to main content

Changelog: Dwi - 2026-06-11

Summary

Updates for today include payout synchronization improvements for GoCardless payment polling, refactoring background jobs to handle asynchronous direct debit payout confirmation webhooks, writing schema test utilities, and organizing technical documentation.


Added

  • Schema checker script: Created check_schema.php to examine and debug table structure/column mapping for invoices and customer models.

Changed

  • GoCardless webhook confirmation job: Updated ProcessGoCardlessPayment.php to map Billing Request ID to the payment's charge_id instead of transaction_id. Eagerly fetches billing request references from the GoCardless API if missing in payload links.
  • Asynchronous payout mapping: Configured ProcessGoCardlessPayment.php to extract GoCardless Payout ID (PO...) during payout events and map it to transaction_id. Triggers PaymentModule::paymentConfirmation and marks invoices paid via InvoiceManagement::updateNonRentalInvoiceAfterPaid().
  • GoCardless API polling command: Refactored PollGoCardlessPayments.php to check billing request status using charge_id rather than transaction_id and maps payout references.
  • Billing redirect callback: Modified GoCardlessController.php to fetch billing request using charge_id.
  • GoCardless Service initialization: Updated GoCardlessService.php to set transaction_id to null initially and store Billing Request ID in charge_id.
  • Order queries whitelisting: Modified Order.php to exclude GoCardless from unpaid order queries. Refactored PaymentModule.php to record confirm_by dynamically based on method ('GoCardless' for GoCardless, 'Stripe' for Stripe, and admin user name for manual transactions). Added whitelisting filters in task checks in TaskRepository.php and task-detail.blade.php to ignore "Not Processed" status.
  • GoCardless documentation: Relocated and structured GoCardless index, explanation, how-to, tutorial, and reference guides in markdown files under docs/modules/ and docs-site/docs/modules/gocardless/.

Fixed

  • None.

Removed

  • None.