Skip to content

Configuration check

The connector ships a self-service configuration check that validates the setup and reports exactly what is wrong — so most onboarding issues are caught without contacting support.

Settings → Payhawk → Sync Log → “Run Configuration Check”. It opens a report with one line per check, colour-coded OK / Warning / Error.

What it validates

CheckWhat it means
API keyA key is set for the active mode (Sandbox/Production).
Payhawk accountThe key authenticates and an account is resolved.
Instance bindingThe Payhawk group’s odoo_internal_data → instance_id matches this Odoo instance (see below).
Taxes — typeOnly purchase taxes are selected (Payhawk is spend management).
Taxes — duplicate codeNo two selected taxes share the same name → Payhawk rejects duplicate codes.
Taxes — mappingEach selected tax matches a Payhawk tax-rate code (catches EN/ES translation mismatches).
CurrenciesEvery Payhawk fund-account currency exists and is active in Odoo.
Supplier external IDsNo Payhawk supplier carries a stale external id from another Odoo instance.
Bills / Fund journalsA purchase journal exists; PHWK/PSND fund journals are present.
Chart of accounts / WebhooksExpense accounts available; webhook secret set when enabled.

Required configuration

  1. API key — per mode. Sandbox and Production keys are stored separately.
  2. Group ID + Group Keyrequired when the Payhawk account belongs to a group (most partner/sandbox accounts do). Without them, creating the integration’s custom field returns 403 Forbidden and the whole sync aborts. Set both in Settings → Payhawk.
  3. Odoo instance binding — on the first sync the connector writes this Odoo’s instance id into the Payhawk group custom field odoo_internal_data → instance_id (anti cross-instance corruption guard). On a shared sandbox group a previous Odoo may already own it; the check then reports a mismatch. Fix: edit odoo_internal_data → instance_id in the Payhawk group UI to the instance id shown by the check.
  4. Taxes — select only purchase taxes, and make sure each selected tax has a unique name (the name becomes the Payhawk code; duplicates → 400 duplicate_code).
  5. Departments → Teams — needs team-create permission in Payhawk. If the account/key can’t create teams (403 /teams), turn off Sync Departments.

Reset supplier external IDs

When suppliers were previously synced from a different Odoo instance (e.g. a shared sandbox), their Payhawk external ids point at the wrong partner and won’t update. A one-time maintenance action clears them so the next sync re-links by VAT/name.

It lives in developer mode (Settings → Payhawk → Sync Log → Reset Supplier External IDs) — intentionally hidden so it cannot be triggered by accident. After running it, start a normal sync.

WARNING

This rewrites every Payhawk supplier’s external id. Use it only for the stale-id case above.

© PLANA Digital Ltd.