Skip to content
thexsys

Developers

Build on the thexsys API

One REST API behind every app in the catalogue, with an OpenAPI 3.1 document, signed webhooks and 300+ events you can subscribe to. The same API your own workspace runs on.

Get a key

Get a key

Open Settings → Developers in your workspace, create an API key, and scope it to a role (Viewer to Owner) and a list of resources. The full key is shown once — copy it before you close the dialog.

Authorization: Bearer txk_live_51H8f…
X-Company-Id: <your company id>

Send the key as a bearer token on every request, and the company it belongs to in a header.

Response shape

Every endpoint returns one of two shapes: a successful payload, or a structured error. List endpoints add paging.

200

{ "data": { … }, "total": 128, "page": 1, "pageSize": 25 }

4xx

{ "error": { "code": "VALIDATION_ERROR", "message": "quantity must be at least 0", "details": [ … ] } }

Try it

Two calls that work against any company: read a list, write a document.

List customers

curl https://api.thexsys.com/api/v1/customers \
  -H "Authorization: Bearer txk_live_…" \
  -H "X-Company-Id: <company id>"

Create an invoice

curl -X POST https://api.thexsys.com/api/v1/invoices \
  -H "Authorization: Bearer txk_live_…" \
  -H "X-Company-Id: <company id>" \
  -H "Content-Type: application/json" \
  -d '{
    "customerId": "cus_…",
    "date": "2026-09-20",
    "dueDate": "2026-10-20",
    "lines": [{ "description": "Consulting", "quantity": 1, "unitPrice": 500 }]
  }'

Webhooks

Register an endpoint URL and a list of topic patterns (a topic, a family like `invoice.*`, or `*`) from Settings → Developers, and every matching event is posted to it as JSON with a signature you can verify.

Verify the signature

Each delivery carries a header of the form below. Compute HMAC-SHA256 of "<t>.<raw body>" with your endpoint secret (`whsec_…`) and compare it to v1 in constant time.

x-thexsys-signature: t=1758345600,v1=5a8f0e2c…

Retry schedule

A failed delivery (non-2xx, or a 10-second timeout) is retried on a backoff ladder; after the last attempt it is marked dead and visible in the endpoint’s delivery log.

1 minute → 5 minutes → 30 minutes → 2 hours → 12 hours

Events

Every family the platform emits, pulled live from the API. `*` matches everything except the audit trail, which is high-volume and opt-in (`audit.*`).

521 topics80 families
  • aftersales

    aftersales.agreement.expiringaftersales.claim.overdueaftersales.claim.respondedaftersales.claim.settled+19
  • agents

    agents.action.approvedagents.action.executedagents.action.expiredagents.action.pending+9
  • analytics

    analytics.access.changedanalytics.access.deniedanalytics.access.grantedanalytics.access.revoked+3
  • Apps

    app.disabledapp.enabledapp.installedapp.uninstalled
  • Appointments

    appointments.bookedappointments.rescheduledappointments.status_changed
  • Appraisals

    appraisals.cycle.closedappraisals.cycle.openedappraisals.feedback.requestedappraisals.goal.achieved+1
  • Approvals

    approvals.request.approvedapprovals.request.overdueapprovals.request.rejectedapprovals.request.submitted
  • Attendance

    attendance.checked_inattendance.checked_outattendance.day.closedattendance.leave.approved+1
  • Audit trail

  • Auto workshop

    auto-workshop.job.checked_inauto-workshop.job.deliveredauto-workshop.job.readyauto-workshop.job.waiting_parts+1
  • av

    av.boq.frozenav.boq.generatedav.commissioning.failedav.commissioning.passed+11
  • biometrics

    biometrics.attendance.postedbiometrics.device.errorbiometrics.device.recoveredbiometrics.device.registered+9
  • Blog

    blog.comment.receivedblog.post.publishedblog.subscriber.added
  • Car wash

    carwash.coupon.redeemedcarwash.job.capturedcarwash.job.completedcarwash.job.flagged+4
  • cheques

    cheques.book.exhaustedcheques.book.lowcheques.customer.holdcheques.deposit.cancelled+22
  • configurator

    configurator.bom.generatedconfigurator.configuration.attachedconfigurator.configuration.savedconfigurator.template.archived+2
  • Connect (channels)

    connect.channel.errorconnect.menu.publishedconnect.order.acceptedconnect.order.cancelled+7
  • Construction

    construction.claim.certifiedconstruction.claim.submittedconstruction.contract.overrunconstruction.dlp.ending+1
  • CRM

    crm.activity.donecrm.lead.convertedcrm.lead.createdcrm.lead.lost+2
  • Discuss

    discuss.channel.createddiscuss.mentioneddiscuss.message.posted
  • eCommerce

    ecommerce.order.cancelledecommerce.order.confirmedecommerce.order.deliveredecommerce.order.placed+2
  • Education

    education.attendance.absenteducation.fee.invoicededucation.fee.overdueeducation.grades.published+1
  • eLearning

    elearning.certificate.issuedelearning.course.completedelearning.course.publishedelearning.enrolment.created+1
  • ELV integration

    elv.boq.frozenelv.boq.generatedelv.credential.revealedelv.design.approved+13
  • Email marketing

    email-marketing.campaign.sentemail-marketing.subscriber.subscribedemail-marketing.subscriber.unsubscribed
  • Employees

    employees.joinedemployees.status_changed
  • EMR

    emr.claim.decidedemr.encounter.closedemr.encounter.openedemr.order.resulted
  • Events

    events.event.closedevents.event.publishedevents.registration.checked_inevents.registration.created
  • Expense claims

    expenses.claim.approvedexpenses.claim.pendingexpenses.claim.reimbursedexpenses.claim.rejected+1
  • Field service

    field-service.work_order.createdfield-service.work_order.dispatchedfield-service.work_order.done
  • Fleet

    fleet.fine.recordedfleet.fuel.loggedfleet.vehicle.assigned
  • Forum

    forum.answer.acceptedforum.reply.publishedforum.topic.pendingforum.topic.published
  • forwarding

    forwarding.agent.agreementExpiringforwarding.agent.settledforwarding.bond.expiringforwarding.consol.built+21
  • Helpdesk

    helpdesk.ticket.assignedhelpdesk.ticket.createdhelpdesk.ticket.repliedhelpdesk.ticket.solved
  • Hospital

    hospital.admission.createdhospital.admission.dischargedhospital.alert.raisedhospital.discharge.overdue+1
  • Hospitality

    hospitality.booking.cancelledhospitality.booking.checked_inhospitality.booking.checked_outhospitality.booking.created+2
  • hse

    hse.action.raisedhse.action.verifiedhse.doc.acknowledgedhse.doc.issued+16
  • IoT

    iot.alert.clearediot.alert.raisediot.command.queuediot.device.offline+1
  • jewelry

    jewelry.melt.closedjewelry.order.deliveredjewelry.order.readyjewelry.purchase.paid+3
  • Knowledge

    knowledge.article.flaggedknowledge.article.publishedknowledge.article.review_requestedknowledge.review.due
  • Legal practice

    legal.conflict.flaggedlegal.hearing.outcome_recordedlegal.hearing.scheduledlegal.matter.closed+3
  • Live chat

    livechat.chat.missedlivechat.chat.ratedlivechat.chat.resolvedlivechat.chat.started+2
  • Loyalty

    loyalty.coupon.usedloyalty.giftcard.issuedloyalty.giftcard.redeemedloyalty.member.enrolled+3
  • Maintenance

    maintenance.equipment.downmaintenance.equipment.upmaintenance.request.completedmaintenance.request.created
  • Manufacturing

    manufacturing.order.cancelledmanufacturing.order.confirmedmanufacturing.order.createdmanufacturing.order.done+2
  • Marketing automation

    marketing.lead.enteredmarketing.lead.hot
  • Marketplace

    marketplace.listing.installedmarketplace.listing.publishedmarketplace.review.postedmarketplace.version.submitted
  • X Migration

    migration.job.donemigration.job.undone
  • Industry models

    model.installed
  • Nonprofit

    nonprofit.disbursement.paidnonprofit.donation.pendingnonprofit.donation.receivednonprofit.pledge.due+1
  • Payment links

    payments.link.createdpayments.link.paid
  • Payroll

    payroll.eos.paidpayroll.run.approvedpayroll.run.calculatedpayroll.run.due+1
  • Pharmacy

    pharmacy.batch.expiringpharmacy.batch.recalledpharmacy.dispensed
  • Planning

    planning.shift.assignedplanning.shift.publishedplanning.week.published
  • PLM

    plm.change.appliedplm.change.approvedplm.change.rejectedplm.change.submitted+1
  • Point of sale

    pos.cash.movedpos.refundpos.salepos.session.closed+1
  • Projects

    project.createdproject.milestone.reachedproject.status_changedproject.task.created+2
  • Property

    property.enquiry.createdproperty.lease.activatedproperty.lease.endedproperty.lease.expiring+2
  • Quality

    quality.check.createdquality.check.failedquality.check.passedquality.ncr.closed+1
  • Recruitment

    recruitment.application.hiredrecruitment.application.receivedrecruitment.interview.scheduledrecruitment.offer.sent
  • Referrals

    referrals.referral.duplicatereferrals.referral.hiredreferrals.referral.submittedreferrals.reward.approved+1
  • Rental

    rental.agreement.cancelledrental.agreement.invoicedrental.agreement.picked_uprental.agreement.reserved+1
  • Report builder

    reportBuilder.schedule.failedreportBuilder.schedule.sent
  • Restaurant

    restaurant.delivery.assignedrestaurant.delivery.statusrestaurant.line.readyrestaurant.line.voided+7
  • Security operations

    security-ops.assignment.noshowsecurity-ops.incident.createdsecurity-ops.permit.approved
  • shipping

    shipping.booking.createdshipping.booking.cutoffDueshipping.cashup.recordedshipping.cod.collected+20
  • Sign

    sign.envelope.completedsign.envelope.declinedsign.envelope.expiredsign.envelope.sent+3
  • SMS marketing

    sms-marketing.campaign.sentsms-marketing.contact.unsubscribedsms-marketing.otp.verified
  • Social marketing

    social.inbox.receivedsocial.post.failedsocial.post.published
  • Spreadsheet

    spreadsheet.workbook.sent
  • storefronts

    storefronts.channel.connectedstorefronts.channel.errorstorefronts.channel.quietstorefronts.fulfilment.delivered+14
  • Subscriptions

    subscriptions.activatedsubscriptions.cancelledsubscriptions.createdsubscriptions.past_due+2
  • Surveys

    surveys.response.completed
  • Time off

    time-off.request.approvedtime-off.request.pendingtime-off.request.rejectedtime-off.request.submitted
  • Timesheets

    timesheets.entry.approvedtimesheets.entry.loggedtimesheets.entry.rejectedtimesheets.entry.submitted+1
  • training

    training.competency.addedtraining.enrolment.requestedtraining.gate.blockedtraining.induction.assigned+8
  • Valet

    valet.car.overnightvalet.car.readyvalet.car.requestedvalet.incident.raised+4
  • VoIP

    voip.call.completedvoip.call.dialledvoip.call.missedvoip.call.started
  • Website

    website.domain.verifiedwebsite.form.submittedwebsite.page.publishedwebsite.site.published
  • WhatsApp

    whatsapp.broadcast.sentwhatsapp.contact.opted_outwhatsapp.conversation.resolvedwhatsapp.message.received+1

Full reference

Every route, request and response schema, generated from the same document the API serves, with a search box and bilingual labels.

Build an app, not just an integration

A thexsys app is a manifest plus a server and web bundle that installs into any tenant’s workspace: its own menu, permissions, document types and Arabic and English copy, sharing the kernel’s tenancy, identity and audit log with every other app.