A versioned, JSON REST API secured with per-key authentication. Subscribe to webhooks for 12 events across jobs, invoices, payments, estimates and customers. Available on the Scale tier.
curl https://api.servicesynchq.com/api/v1/jobs \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"customerId": 12345,
"scheduledDate": "2026-08-20T14:00:00Z",
"title": "HVAC repair"
}'
{ "id": 84213, "customerId": 12345, "status": "scheduled", "scheduledDate": "2026-08-20T14:00:00Z", "title": "HVAC repair", "createdAt": "2026-07-24T08:14:22Z"}
A taste of the surface area. Customers, jobs, invoices, estimates, payments, inventory, scheduling, and notifications all expose full CRUD over JSON.
Full CRUD over JSON, secured with your X-API-Key.
Register an endpoint and react in real time.
Two ways to integrate — REST for read/write, webhooks for real-time push.
/api/v1/customers
List all customers.
cursor-paginated/api/v1/customers
Create a new customer.
idempotency-key supported/api/v1/jobs
List jobs filtered by status or date.
sortable + filterable/api/v1/jobs
Schedule a new job. Fires job.created webhook.
/api/v1/invoices
List invoices with pagination.
jurisdiction-aware/api/v1/invoices/:id/send
Send invoice via email or SMS. IRN auto-generated for IN.
retry-queue backedA representative sample across customers · jobs · estimates · invoices · payments · inventory · procurement · scheduling · notifications. Every privileged call is audit-logged. View the full reference →
Pass a country code, get the right tax math, the right document layout, the right e-invoice payload. Same endpoints, jurisdiction-aware behavior — no per-country forks in your integration code.
Pass intent — we compute the right tax breakdown. State changes, registration changes, jurisdiction toggles are all data, not code. Banking-grade isolation: each customer's data lives in its own logical vault — the database itself refuses to mix data across vaults, not just the app code.
Same supplier state as customer? CGST + SGST. Different? IGST. Computed from company.state vs customer.state.
Generates IRN + signed QR on POST. 24h cancellation window exposed via dedicated endpoint. HSN codes via lookup.
Auto-deducts 20% / 30% / 0% based on contractor registration status, per subcontractor.
Phase 1 bilingual invoice + TLV QR encoding all 5 mandatory tags. Validates against ZATCA before render.
Every request is authenticated with an API key sent in the
X-API-Key header. Keys are created by your tenant admins,
revocable at any time, and every privileged call is audit-logged.
Keys are shown once at creation and stored only as a hash — never in plaintext.
X-API-Key header on every request.
curl https://api.servicesynchq.com/api/v1/customers \
-H "X-API-Key: YOUR_API_KEY"
# 200 OK — returns your customers as JSON.
# Manage keys under Settings → API keys (admin only).
Subscribe to lifecycle events across CRM, dispatch, billing, payments, procurement, and audit. Every webhook is cryptographically signed, retried with exponential backoff, and backed by a durable retry-queue.
job.created
New job created.
job.completed
Job marked complete.
job.status_changed
A job moved to a new status.
invoice.created
New invoice created.
invoice.paid
Invoice payment received.
invoice.overdue
Invoice crossed its due date unpaid.
payment.received
A customer payment was recorded.
customer.created
New customer added.
estimate.sent
Estimate sent to the customer.
estimate.accepted
Customer accepted the estimate.
estimate.rejected
Customer declined the estimate.
estimate.converted_to_job
Accepted estimate converted into a job.
Official SDKs are in development. Until they ship, the REST API is fully documented above and works with any HTTP client.
Every request is automatically scoped to your workspace at the database layer — not just in application code. A query from one workspace literally cannot read another workspace's data — the database itself enforces it.
Fair-use rate limits with burst capacity. Your current limit and remaining quota
come back on every response in X-RateLimit-Limit / X-RateLimit-Remaining /
X-RateLimit-Reset headers (IETF draft standard). You'll never have to guess what's allowed.
Enough headroom for ordinary integrations · headers tell you in real time
For high-throughput sync, bulk export, ETL workloads
Contact sales for sizing
429 Too Many Requests with a Retry-After header in seconds.
Our SDKs handle this automatically with exponential backoff.
If you regularly need higher ceilings, talk to us
— the published numbers are floors, not ceilings.
We protect your keys the way we'd want our own protected. Here's what you can count on.
Reference docs, changelog, and a real human on the other end when you get stuck.
API access is included on the Scale tier. Read the docs first, get your keys when you're ready.