Wafeq – Gotchas

Service ID: wafeq

Wafeq is an accounting and bookkeeping platform for the MENA region with ZATCA-compliant e-invoicing, supporting multi-currency, payroll, and financial reporting.

⚠️

3 gotchas across 3 resources

These are connector-specific behaviors and limitations to be aware of when integrating.

Customers1 gotcha

allcustomersAll

Wafeq does not separate customers and suppliers as distinct API resources — both share /v1/contacts/. The unified customers resource sends relationship[]=customer to filter, and suppliers sends relationship[]=supplier. However, Wafeq's relationship field is internal and is NOT settable via the API on contact create/update — it is populated by Wafeq based on UI classification or transaction history. Newly-created contacts and contacts with no transactions will appear in BOTH the customers and suppliers lists until Wafeq tags them. To enforce strict customer/supplier separation, manage contact classification in the Wafeq UI.

Payments1 gotcha

addpaymentsAdd

Wafeq splits payment allocations by document type into separate vendor fields: accounts_receivable payments populate invoice_payments[], accounts_payable payments populate bill_payments[]. Wafeq requires amount_to_pcy (amount in primary currency) on each allocation; Apideck mirrors amount for single-currency cases. The target invoice or bill must be finalized before a payment can attach — drafts return 403 payment_locked. To finalize, PATCH the document with the appropriate non-draft status (invoices/credit-notes accept FINALIZED or SENT, bills accept AUTHORIZED); these map to the unified authorised status. The bank account's currency must match the payment currency (Wafeq does not auto-convert).

Suppliers1 gotcha

allsuppliersAll

Wafeq does not separate customers and suppliers as distinct API resources — both share /v1/contacts/. The unified suppliers resource sends relationship[]=supplier to filter. However, Wafeq's relationship field is internal and is NOT settable via the API on contact create/update — it is populated by Wafeq based on UI classification or transaction history. Newly-created contacts and contacts with no transactions will appear in BOTH the customers and suppliers lists until Wafeq tags them. To enforce strict customer/supplier separation, manage contact classification in the Wafeq UI.