AFAS Software – Gotchas

Service ID: afas

AFAS Software provides comprehensive business software solutions including ERP, HR, and payroll management for small to medium-sized businesses.

⚠️

26 gotchas across 24 resources

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

Attachments2 gotchas

allattachmentsAll

AFAS does not expose a total record count in list responses. meta.total_count will not appear.

uploadattachmentsUpload

An uploaded file is linked to the invoice's or bill's customer/supplier, not to the specific invoice or bill record itself. It will not appear when listing attachments filtered to the reference_id it was uploaded against — list attachments by that customer/supplier's other records, or fetch the attachment by the id returned from the upload response, to find it.

Requires a per-tenant AFAS SubjectType code, passed per call as pass_through[subject_type_id]=<code>. A file name with no extension is rejected.

allbankAccountsAll

AFAS does not expose a total record count in list responses. meta.total_count will not appear.

allbillPaymentsAll

AFAS does not expose a total record count in list responses. meta.total_count will not appear.

Bills2 gotchas

allbillsAll

AFAS Profit has no first-party purchase-invoice GetConnector on most tenants. The default purchase_invoices_connector setting (Profit_Creditor_Invoices) is the open-items / aged-creditors report — it only returns purchase invoices that are still unpaid. Posted-and-cleared invoices will not appear.

To list all bills (paid + open), the customer must deploy a tenant-specific GetConnector (e.g. one over FbInkfct) and set its name on the connection via purchase_invoices_connector.

Profit_Creditor_Invoices returns one flat row per bill (header only) — there is no line-item detail, so line_items is always empty and limit=N directly caps the number of bills returned, one row per bill.

status is always reported as authorised: this GetConnector exposes no status field, so the real payment/void state of a bill (paid, draft, void) cannot be determined from it. sub_total and total are always equal for the same reason — the connector exposes a single invoice amount, with no separate pre-tax/tax breakdown, so total_tax is always 0.

addbillsAdd

On tenants without a dedicated purchase-invoice booking connector configured (see the bills.all gotcha above), a created bill is not immediately retrievable via bills.one or bills.all — it is recorded in AFAS's purchase-order system rather than the invoice-booking system those read operations query. Reading it back requires the same tenant-specific GetConnector setup described for listing bills.

Categories1 gotcha

allcategoriesAll

AFAS does not expose a total record count in list responses. meta.total_count will not appear.

Credit Notes1 gotcha

allcreditNotesAll

AFAS Profit derives credit notes from Profit_SalesorderLines by filtering rows with a negative AmtTotal or a credit-style Ordersoort (e.g. CR). Tenants that store credit notes in a separate journal (and not as negative sales-order lines) will return an empty list — set the credit_notes_connector setting to a tenant-specific GetConnector to override.

The limit parameter may return fewer credit notes than specified. AFAS returns flat sales-order line rows which are grouped by OrderNumber into complete credit notes. limit=N caps the raw row count, not the grouped credit-note count.

Customers1 gotcha

allcustomersAll

AFAS does not expose a total record count in list responses. meta.total_count will not appear.

Departments1 gotcha

alldepartmentsAll

AFAS does not expose a total record count in list responses. meta.total_count will not appear.

Employees1 gotcha

allemployeesAll

AFAS does not expose a total record count in list responses. meta.total_count will not appear.

allexpenseCategoriesAll

AFAS does not expose a total record count in list responses. meta.total_count will not appear.

allinvoiceItemsAll

AFAS does not expose a total record count in list responses. meta.total_count will not appear.

Invoices1 gotcha

allinvoicesAll

AFAS Profit derives sales invoices from Profit_SalesorderLines (sales-orders feed). The limit parameter may return fewer invoices than specified — AFAS returns flat sales-order line rows which are grouped by OrderNumber into complete invoices. limit=N caps the raw row count, not the grouped invoice count.

alljournalEntriesAll

AFAS does not expose a total record count in list responses. meta.total_count will not appear.

Journals1 gotcha

alljournalsAll

type may return bank for a journal that is actually a cash account, or vice versa — AFAS does not expose a distinct category for these two types at the API level. allow_vat and currency are not exposed and are always absent.

allledgerAccountsAll

AFAS does not expose a total record count in list responses. meta.total_count will not appear.

Locations1 gotcha

alllocationsAll

AFAS does not expose a total record count in list responses. meta.total_count will not appear.

Payments1 gotcha

allpaymentsAll

AFAS does not expose a total record count in list responses. meta.total_count will not appear.

Projects1 gotcha

allprojectsAll

AFAS does not expose a total record count in list responses. meta.total_count will not appear.

allpurchaseOrdersAll

AFAS does not expose a total record count in list responses. meta.total_count will not appear.

Most AFAS tenants have no purchase-order GetConnector configured out of the box — this resource returns an error rather than an empty list until the tenant deploys one. If its name differs from the Apideck default (Profit_PurchaseOrders), pass it per call via pass_through[purchase_orders_connector]=YourConnectorName.

Quotes1 gotcha

allquotesAll

AFAS Profit's default sales-quotes GetConnector (Profit_Quotation) only exists on tenants that have the sales-quotes module deployed. On tenants without it, the list returns empty. Override quotes_connector on the connection to point at a tenant-specific quotes GetConnector if available.

The limit parameter may return fewer quotes than specified. AFAS returns flat quote line rows which are grouped by OrderNumber into complete quotes. limit=N caps the raw row count, not the grouped quote count.

Subsidiaries1 gotcha

allsubsidiariesAll

AFAS does not expose a total record count in list responses. meta.total_count will not appear.

Suppliers1 gotcha

allsuppliersAll

AFAS does not expose a total record count in list responses. meta.total_count will not appear.

Tax Rates1 gotcha

alltaxRatesAll

AFAS does not expose a total record count in list responses. meta.total_count will not appear.

alltrackingCategoriesAll

AFAS does not expose a total record count in list responses. meta.total_count will not appear.