Skip to content

Clients

Clients are one of Custom Link’s master-data entities — lower churn than orders, but still needed for validation (e.g. resolving a ClientNumber before order intake) and for keeping an external system in sync. For the other master-data entity, see Employees.

SituationCommand
Look up client(s) by Id, number, or search textRequestClients
Create or update a clientStoreClients
<?xml version="1.0" encoding="windows-1252"?>
<EoCustomLinkRequestClients Type="TEoCustomLinkRequestClients">
<Nested>False</Nested>
<Filter Type="TEoFilterClients">
<Active>fsActiveOnly</Active>
<KeysExplicitAsCsv>110,111</KeysExplicitAsCsv>
</Filter>
</EoCustomLinkRequestClients>
Filter fieldTypeDescription
ActiveenumfsActiveOnly (default), fsActiveNot, or fsActiveBoth.
KeysExplicitAsCsvstring (CSV)Internal MendriX client Ids. If you send both this and NumbersExplicitAsCsv, KeysExplicitAsCsv silently wins and NumbersExplicitAsCsv is ignored.
NumbersExplicitAsCsvstring (CSV)External client numbers — use when your source system only knows the client number, not the internal Id.
SearchstringFree-text search on name, contact person, street, postcode, city, phone, fax, country.
AdministrationintWhich MendriX administration to query. -2 = all administrations (safest default if unsure).
TrashBinbooleanTrue returns only deleted clients. Usually pointless to combine with Active=fsActiveOnly, since a deleted client’s active/inactive state is typically not meaningful.
MarkCharsstringFilter by mark characters (internal categorization). Usually left empty.
FieldTypeDescription
ClientIdkeyInternal database Id.
NumberstringExternal client number (visible in the MendriX UI).
AddressaddressVisiting address (name, street, postcode, place, country). Longitude/Latitude use the sentinel 99999.0 to mean “unknown” — don’t treat it as a real coordinate.
AddressInvoiceaddressInvoice address.
AddressInvoicePersonstringContact person for the invoice address.
ConnectivityconnectivityEmail, phone, fax, mobile, and website (Web).
ContactNamestringDefault contact person.
AdministrationIdkeyWhich administration this client belongs to.
DeletedbooleanTrue if the client is in the trash bin.
OrderEntryDisabledbooleanTrue blocks new order entry for this client.
OrderEntryAlwaysMessagestringFixed message shown at order entry for this client, if any. Empty = no message.
InvoiceEmailAddressstringEmail address invoices are sent to.
InvoiceCollectionbooleanTrue if this client receives collected/batched invoices.
BankAccountstringIBAN or bank account number.
PaymentTermintPayment term in days.
TaxCodestringOne-character tax code (internal foreign key).
VatCodestringVAT number.
CommerceNumberstringChamber of commerce registration number.
HandlingTimestringDefault handling time for this client, if set.
CustomLabelRefOur / CustomLabelRefYourstringCustom labels for the “our reference”/“your reference” fields, if this client uses non-default labels.
WorldLinkUserNamestringLogin username for this client’s WorldLink/customer-portal access, if configured.
DistanceCalculationTypeintHow distance is calculated for this client’s orders.
DistancePercentagedecimalSurcharge/discount percentage on calculated distance.

Scenario: validate a client number before order intake. Set NumbersExplicitAsCsv to the number your source system provided; an empty result means the number doesn’t exist in MendriX and the order should be rejected client-side before you attempt StoreOrdersNormal.

Scenario: sync all active clients into an external CRM. Omit KeysExplicitAsCsv/NumbersExplicitAsCsv/Search, leave Active=fsActiveOnly, and page through results (large tenants may return many clients — request in reasonable batches, see don’t hammer the server).

Scenario: find a client by name. Set Search to the name or partial name — matches name, contact person, address fields, and phone/fax.

  • A Custom Link token’s access to Clients is all-or-nothing — if the token’s section is denied (DenyAll), every RequestClients/ StoreClients call fails with a Security: no permission for request <ClassName> error. This is different from Orders/Invoices tokens, which support a LimitToClientId mechanism that silently narrows results to one client instead of rejecting the request — Clients tokens have no such mechanism. Administration-level scoping (which administrations a token can see) still applies independently and can narrow results without an error.
  • StoreClients is not rejected for skipping a prior retrieve — the server updates the DB row directly. This differs from orders; see Custom Link: rules of engagement. There is a real asymmetry worth knowing about, though: for clients, the server still fetches the existing row itself before storing, so a partial payload against an existing client merges rather than blanking other fields — unlike employees, where no such server-side fetch happens.
  • KeysExplicitAsCsv vs. NumbersExplicitAsCsv — these filter on different keys (internal Id vs. external number). Use the one that matches the identifier your source system provides; if you send both, KeysExplicitAsCsv silently wins and NumbersExplicitAsCsv is ignored.