Complete Wafeq accounting & e-invoicing API reference for the Middle East (UAE, Saudi Arabia). Use when building integrations with Wafeq, creating/managing invoices (standard, simplified, bulk), contacts, accounts, bills, expenses, credit/debit notes, payments, payslips, quotes, items, files, manual journals, reports (P&L, balance sheet, cash flow, trial balance), branches, cost centers, employees, projects, warehouses, or any task involving the Wafeq REST API.
Complete API reference for the Wafeq accounting and e-invoicing platform.
To use this skill, you need a Wafeq API key:
export WAFEQ_API_KEY='your-key-here'
Or configure in ~/.openclaw/openclaw.json:
{ "skills": { "entries": { "wafeq-api": { "apiKey": "your-key-here" } } } }
⚠️ Security: Never hardcode your API key in code, prompts, or skill files. Always use the
WAFEQ_API_KEYenvironment variable or configure it viaskills.entries.wafeq-api.apiKeyin~/.openclaw/openclaw.json.
You can validate your setup by running scripts/setup.sh from the plugin root.
https://api.wafeq.com/v1/Authorization: Api-Key $WAFEQ_API_KEY — get keys at https://app.wafeq.com/c/api-keysAuthorization: Bearer <access_token> — contact Wafeq for client credentialsX-Wafeq-Idempotency-Key: <uuid-v4> on POST/PUT/PATCH/DELETE (1hr cache, replayed response includes X-Wafeq-Idempotent-Replayed: true)?page=1&page_size=25 — response: { count, next, previous, results[] }application/jsoncnt_..., acc_..., inv_...)Most resources follow: POST /{resource}/, GET /{resource}/, GET /{resource}/{id}/, PUT /{resource}/{id}/, PATCH /{resource}/{id}/, DELETE /{resource}/{id}/. Some also have GET /{resource}/{id}/download/ for PDF.
Line items are nested: /{resource}/{parent_id}/line-items/ with the same CRUD pattern.
| File | Contents |
|---|---|
| references/core-concepts.md | Authentication (API Key + OAuth2), idempotency, error handling, quickstart guide, invoice creation walkthrough, use cases (B2B, B2C, e-commerce, expense management) |
| references/enums.md | All 18 enum types: currencies, statuses, classifications, tax types, discount types, languages |
| references/invoices.md | Standard invoices, invoice line items, bulk invoices (api-invoices), simplified invoices, simplified invoice line items — full CRUD + schemas |
| references/accounts-banking-contacts.md | Chart of accounts, bank accounts, bank ledger transactions, bank statement transactions, contacts, beneficiaries — full CRUD + schemas |
| references/bills-expenses-notes.md | Bills, bill line items, expenses, credit notes, credit note line items, bulk credit notes, debit notes, debit note line items — full CRUD + schemas |
| references/quotes-payments-remaining.md | Quotes, payments, payment requests, payslips, items, files, manual journals, journal line items, reports (balance sheet, P&L, cash flow, trial balance), organization, tax rates, branches, cost centers, employees, projects, warehouses — full CRUD + schemas |
POST /contacts/GET /accounts/?classification=REVENUEGET /tax-rates/POST /invoices/ (with line_items, contact, currency, invoice_date, invoice_due_date, invoice_number)POST /invoices/{id}/tax-authority/report/GET /invoices/{id}/download/POST /api-invoices/bulk_send/ with array of invoice objects including channels for email delivery{ "queued": N }GET /api-invoices/summary/GET /accounts/?classification=EXPENSEPOST /expenses/ with paid_through_account, contact, date, currency, tax_amount_type, line_itemsPOST /payments/ with invoice_payments array linking to invoice IDs and amountsGET /reports/balance-sheet/?currency=SAR&date=2025-12-31GET /reports/profit-and-loss/?currency=SAR&date_after=2025-01-01&date_before=2025-12-31GET /reports/cash-flow/?currency=SAR&date_after=2025-01-01&date_before=2025-12-31GET /reports/trial-balance/?from_date=2025-01-01&to_date=2025-12-31POST /quotes/POST /quotes/{id}/invoice/POST /{resource}/{id}/tax-authority/report/OUTSIDE_UAE)reference fields as unique identifiers to prevent duplicate creation