جهات الاتصال
2Customers, suppliers and the segments they sit in.
contactscontact-segmentsMost business software gives you an API per product — one for the till, another for stock, a third for invoices, each with its own auth and its own idea of a date. Kardopal has one. The same key, the same base URL and the same query grammar reach 133 resources across 30 modules.
Six things that are true here and are usually not.
Hit the base URL and the API hands back its own catalogue — every module your key can see, every resource inside it, which fields are searchable and which are filterable. You do not need this page to write the integration; you need it to decide to.
Scopes, routes and the permission pills in the app are generated from one list, so a permission cannot be offered unless there is an endpoint behind it. A key scoped to items gets items — asking it for payroll returns 403, not a silent empty page.
search, since, until, skip and take mean the same thing on invoices as they do on stock movements. Learn the shape once and every one of the 133 resources answers to it.
Every table carries a tenant id and every query is scoped to the key’s own tenant before it reaches the database. There is no cross-tenant read to get wrong, because there is no parameter that could ask for one.
The field list is read from the live schema at boot rather than hand-maintained. A new column shows up on its own; a dropped one can never leave a dangling reference in the docs or a 500 on first call.
Keys read; they never write. An integration that goes wrong cannot void an invoice or move stock. Anything that changes a record goes through the app or a staff login, where it is attributed to a person and lands in the audit log.
Everything is a GET. If you can use curl, you can use this.
/api/v1The whole catalogue your key can seecurl https://api.kardopal.com/api/v1 \
-H "X-API-Key: kp_live_…"
/api/v1/meSanity probe — whose key is this, and what can it read{
"authType": "api_key",
"tenant": { "name": "Nova Retail", "plan": "pro" },
"scopes": ["items", "sales", "pos"]
}
/api/v1/items?search=lamp&take=2Any resource, same shape{
"resource": "items",
"scope": "items",
"total": 41,
"skip": 0,
"take": 2,
"hasMore": true,
"data": [ { "id": "…", "name": "Desk Lamp LED" } ]
}
/api/v1/meta/countsRow count per resource — see what data actually existscurl https://api.kardopal.com/api/v1/meta/counts \
-H "X-API-Key: kp_live_…"
| Parameter | Does | الملاحظات |
|---|---|---|
search | Case-insensitive match across the resource’s searchable fields | Which fields those are is listed in /meta |
since | Only records from this date forward | Applies to the field the resource sorts by |
until | Only records up to this date | Combine with since for a window |
skip | Offset into the result set | Defaults to 0 |
take | How many rows to return | Defaults to 50, capped at 200 |
Resources also accept exact-match filters on their own declared fields — ?status=paid, ?warehouseId=… — and each one advertises which those are. Every list response carries total and hasMore, so paging is a loop, not a guess.
30 modules, 133 resources. Each card is one permission you can grant a key — and the grey tag is where the same records live in the app on your phone.
Customers, suppliers and the segments they sit in.
contactscontact-segmentsThe catalogue: products, variants, brands, price lists and units.
itemscategoriesbrandsitem-variantsprice-listsunits+1 moreWarehouses, stock levels, movements, batches, serials and bins.
warehousesstock-movementsstock-levelsbatchesserialsstock-counts+1 moreInvoices, estimates, orders, credit notes and payments.
invoicesestimatessales-orderscredit-notespaymentsrecurring-invoices+1 moreTills, shifts, receipts, tables and every sale that crossed the counter.
pos-salespos-shiftspos-terminalspos-userspos-tablespos-table-areas+5 moreLeads, deals, pipelines and proposals.
leadsdealspipelinesproposalsPurchase orders, requests, returns, bills and vendor payments.
purchase-orderspurchase-requestspurchase-returnsbillsvendor-paymentsExpenses, bank accounts, transactions and tax rates.
expensesexpense-categoriesbank-accountsbank-transactionstax-ratesCampaigns, recipients, landing pages and form submissions.
campaignscampaign-recipientslanding-pagesform-submissionsPeople, departments, leave, payslips, attendance and hiring.
employeesdepartmentsleave-requestspayslipsattendancejob-postings+2 moreTime entries and the projects they are booked against.
time-entriestimesheet-projectsProjects, phases and the costs attached to them.
projectsproject-phasesproject-costsAppointments, bookable services and the staff who deliver them.
bookingsbooking-servicesbooking-staffJobs, technicians, work orders, contracts and equipment.
field-jobstechniciansservice-requestsservice-contractswork-ordersjob-cards+1 moreShipments, drivers, vehicles, zones and carriers.
shipmentsdriversvehiclesdelivery-zonescarriersTickets, SLA policies, help articles and the knowledge base.
ticketscustomer-ticketshelp-articlesknowledge-basesla-policiesReturns, warranty claims, repairs and product registrations.
rmaswarranty-claimswarranty-registrationsrepairsproduct-registrationsRentable assets, rental agreements and their lines.
assetsrentalsrental-linesThe menu and the orders placed against it.
menu-itemsmenu-ordersTickets, services, counters, branches and the display screens.
queue-ticketsqueue-servicesqueue-countersqueue-branchesqueue-displaysMembers, accounts, tiers, rewards and point transactions.
loyalty-membersloyalty-accountsloyalty-rewardsloyalty-tiersloyalty-transactionsloyalty-couponsWork orders, bills of materials, work centres and QC.
work-orders-mfgbomswork-centersquality-inspectionsSites and branches.
locationsbranchesDevices, sites, boxes, alerts, events and signage content.
iot-devicesiot-sitesiot-alertsiot-eventsiot-boxesiot-signage-contentGenerated assets, the projects holding them and job history.
ai-assetsai-projectsai-jobsNetwork members, quote requests and collections.
network-membersquote-requestscollectionsSignature requests and the signatures collected against them.
signature-requestssignaturesApproval requests and the rules that route them.
approval-requestsapproval-rulesUploaded files and scanned documents.
filesscanned-documentsThe activity feed, audit log and notifications.
activitiesaudit-logsnotificationsThis is the part that usually is not true. Plenty of platforms expose a broad API and then ship a mobile app that does three things — approve, view, notify. Kardopal’s app is the product, not a companion: all 30 modules above have real screens, and the phone is where most of the work actually happens.
items. It does not need hr. Narrow keys fail safe.X-API-Key: kp_live_… — query strings end up in logs, proxies and browser history.The API documents itself: create a key in the app, point curl at the base URL, and it hands back every module, resource and searchable field that key can reach.