Skip to content

Data flow reference

What moves between Odoo and Payhawk, and in which direction.

Push: Odoo → Payhawk

Odoo objectBecomes in PayhawkTrigger
Expense accounts (account.account, group expense)Account codesScheduled / manual sync
Purchase taxes (account.tax, selected)Tax ratesScheduled / manual sync
Expense products (product.product, selected)CategoriesExport Expense Categories / sync (if enabled)
Analytic plans (account.analytic.plan)Custom fieldsScheduled / manual sync
Analytic accounts (account.analytic.account)Custom field valuesScheduled / manual sync
Departments (hr.department)TeamsScheduled / manual sync
Asset models (OCA / Enterprise)AmortizationsScheduled / manual sync

Pull: Payhawk → Odoo

Payhawk objectBecomes in OdooTrigger
Reviewed expenseVendor bill or receipt (linked)Webhook expense.reviewed + sync
Expense payment detailsPayment info on the moveWebhook expense.payment-details.updated
Fund-account transactionsBank statement linesScheduled sync (if Import Bank Statements)
Suppliersres.partner (tagged Payhawk Supplier)Sync + webhooks

Two-way: Suppliers

Suppliers reconcile in both directions. Matching priority:

  1. VAT / Tax ID
  2. External ID (Odoo partner ID stored on the Payhawk supplier)
  3. Name

New Odoo suppliers are pushed to Payhawk (batches of 50/run); new Payhawk suppliers without an external ID are imported into Odoo and back-linked. Invalid emails are skipped with a warning rather than failing the run.

Identity & integrity

  • The connector stores the Odoo instance identifier in a hidden Payhawk custom field (odoo_internal_datainstance_id) to guard against cross-instance mixups.
  • The Account ID links the Odoo company to a specific Payhawk account; it is discovered and stored on first sync.

Timing

  • Scheduled: "Payhawk Data Sync Runner" every 15 minutes (incremental — pulls what changed since the last success watermark).
  • Real-time: webhooks for expense review, payment changes, supplier create/update.

© PLANA Digital Ltd.