Track projects, cost centers, and custom data

Preserve the reporting dimensions and business context finance teams need across every accounting workflow.

Track projects, cost centers, and custom data

Accounting totals answer “how much?” Dimensions answer “for which team, customer, branch, or initiative?” Map dimensions early so reports remain useful as transaction volume grows.

Choose the right dimension

DimensionUse it for
AccountFinancial classification in the chart of accounts
ContactCustomer, supplier, or other counterparty
ProjectA job, engagement, contract, or internal initiative
Cost centerDepartment, team, location, or budget owner
BranchOrganizational or operational branch
Custom fieldBusiness-specific context not covered by a standard dimension

Do not encode all context into free-text descriptions. Structured IDs are filterable and auditable.

Create a project

curl --request POST "https://api.wafeq.com/v1/projects/" \
  --header "Authorization: Api-Key <API_KEY>" \
  --header "Content-Type: application/json" \
  --header "X-Wafeq-Idempotency-Key: project-<SOURCE_ID>" \
  --data '{
    "name": "Downtown rollout"
  }'

See Create project.

Create a cost center

curl --request POST "https://api.wafeq.com/v1/cost-centers/" \
  --header "Authorization: Api-Key <API_KEY>" \
  --header "Content-Type: application/json" \
  --header "X-Wafeq-Idempotency-Key: cost-center-<SOURCE_ID>" \
  --data '{
    "name_en": "Operations",
    "name_ar": "العمليات",
    "is_active": true
  }'

See Create cost center.

Apply dimensions consistently

Documents and line items may expose different dimension fields. Put a project or cost center at the most specific supported level that matches your reporting policy.

For example, an invoice can carry a project while individual lines carry cost centers and custom fields:

{
  "project": "<PROJECT_ID>",
  "line_items": [
    {
      "description": "Implementation",
      "account": "<REVENUE_ACCOUNT_ID>",
      "quantity": 1,
      "unit_amount": 5000,
      "cost_center": "<COST_CENTER_ID>",
      "custom_fields": {
        "<CUSTOM_FIELD_ID>": "enterprise"
      }
    }
  ]
}

Custom fields

Use Custom Fields for organization-specific metadata. The field configuration determines:

  • Which document types it applies to.
  • Whether it is a document or line-item field.
  • Its data type and allowed values.
  • Whether it is active and visible.

Create the field definition before sending values. Map by Wafeq custom-field ID, not display name.

Mapping rules

  • Scope every mapping by Wafeq organization.
  • Store Wafeq IDs next to durable source IDs.
  • Sync renamed projects and cost centers without creating duplicates.
  • Do not reuse an inactive dimension for a new business meaning.
  • Validate that a custom field applies to the target document type.
  • Define whether dimensions are inherited from a parent order or explicitly copied to the invoice or bill.

Reporting

Profit and loss, balance sheet, cash flow, and trial balance endpoints support selected dimension filters. Use the same Wafeq IDs that were written to the source documents.

Continue with Post journals and read financial reports.


Did this page help you?