Extends the Agency Pulse Invoice ecosystem with automatic, incremental backup and restore capabilities for invoices. Integrates with an external secure & encrypted backup server console to provide incremental backups. The backup management console allows monitoring backup status, configuring settings, and sending restore and archive commands to the site.
_invoice_* meta, line items, and the PDF version history array._client_* meta, and any invoice templates attached to the client.plugins_active array listing which addon slugs contributed sections, allowing the server and future restore handlers to interpret the payload structure correctly regardless of which addons are installed on the restore target.failed_permanent. It is no longer automatically retried, preventing an unreachable server from consuming queue capacity indefinitely.failed status, entities stuck in in_progress for longer than 10 minutes (indicating a crashed send), and entities that have made at least one attempt but have no remote ID.post_modified timestamp is newer than the stored last-backup timestamp, catching content changes that occurred while the event-driven triggers were not active.POST /wp-json/apab/v1/operation receives signed operation commands from the external backup server.expiry Unix timestamp. The endpoint rejects any payload whose expiry has passed, preventing replay of intercepted requests.callback_url field, the endpoint posts the operation result back to the server using JWT Bearer authentication, enabling the management console to confirm completion synchronously._invoice_* meta, and line items to the database.skip leaves the existing record untouched (default), overwrite updates it in place, or duplicate creates a new post alongside the existing one._invoice_pdf_versions array is written directly from the payload, preserving the full version history including S3-backed signed PDF references.archive operation to WordPress, triggering a local trash or hard-delete of the entity identified by its remote ID. The action is determined by the payload’s archive_mode field, falling back to the site-wide archive mode setting._apab_archived = true and _apab_archived_at written to post meta. These flags persist through WordPress trash, ensuring the archive state survives a restore from trash._client_email. If a matching client already exists locally, the handler compares modification timestamps and skips the update if the local record is newer, preventing accidental overwrites of more recent data.restore_batch operation processes an array of heterogeneous items in a single request, returning a per-item result array including local IDs, conflict flags, and any errors. Batch pages are limited to 25 items; the server controls pagination sequencing.failed_permanent status, showing the entity title and last error message. Notices are dismissible and clear automatically once the backup succeeds.apss_invoice_signed action enqueues the invoice for backup immediately after signing completes, ensuring the signed PDF metadata and secure sign section reach the server with minimal delay.Unlock all the features above for your agency.