Features E-Invoicing Guides Blog Integrations Pricing Security Log in
Integrations · REST API · Webhooks

Connected, not walled in.

FinSanad integrates natively with HRSanad HR & payroll, exposes a fully documented REST API, streams event webhooks, and imports & exports open formats — so your data flows freely and stays yours. No lock-in, ever.

Explore features
★★★★★ OpenAPI 3.0 · HMAC-signed webhooks · SSO · Tally & CSV import
Native, not bolted-on

The HRSanad integration

FinSanad is the finance half of the HRSanad platform. When HR sells, delivers and pays people, the accounting appears here — balanced, tagged and reconciled. Six flows keep the two systems in perfect lock-step.

HRSanad Projects · Delivery Notes · Payroll
PO ←→ Project
DN → Invoice →
← Status / Payment
FinSanad Sales Invoice · GL Journal · AR
✓ DN-5540 → INV-2041 posted · party matched by TRN · VAT 5% output · AR 12,600 · cost-centre PROJ-118 · external_ref=DN-5540

PO flow

HRSanad pulls approved customer purchase orders from FinSanad and seeds a Project — a bidirectional PO ↔ project link keeps both sides in sync.

Bidirectional

Delivery Note → Sales Invoice

When HRSanad marks work delivered, FinSanad auto-creates a sales invoice — party from master sync, revenue + VAT output ledgers, AR debit, cost-centre tag for project P&L and the PO reference. The invoice number returns to HRSanad with a link-out.

Status sync-back

Invoice status — issued, sent, part-paid, paid, overdue — and payment events flow back to HRSanad. Ageing (0–30 / 31–60 / 60+) surfaces on the Capacity dashboard.

Master-data sync

Customers & parties are resolved via TRN or name; tax codes (VAT 5 / 0 / exempt), currencies and cost centres are auto-created so nothing is entered twice.

Auth & security

OAuth2 client-credentials for service-to-service calls, HMAC-SHA256 signed webhooks, per-tenant encrypted credentials and absolute tenant isolation — tenant_id ↔ company_id 1:1.

Idempotency & reconciliation

Every push carries an external_ref (the DN number) so duplicate invoices are impossible. A sync-health dashboard, an exceptions queue for unmatched parties / tax / currency, and a daily reconciliation job flag any drift.

Everything is an endpoint

A REST API for everything

Every object in FinSanad is reachable under /api/v1 — JSON in, JSON out, standard HTTP codes. Build integrations, automations and custom dashboards on the same API our own apps use.

🔑

Auth

  • POST /api/v1/auth/login
  • POST /api/v1/auth/refresh
  • POST /api/v1/auth/mobile/login
  • POST /api/v1/auth/mobile/refresh

Tenant + user login; OAuth2 client-credentials for service-to-service.

Accounting

  • GET  /api/v1/vouchers
  • POST /api/v1/vouchers
  • GET  /api/v1/vouchers/{id}
  • POST /api/v1/vouchers/{id}/entries
  • DEL  /api/v1/vouchers/{id}/entries/{e}
  • GET  /api/v1/ledgers
  • GET  /api/v1/parties
  • GET  /api/v1/cost-centres
  • GET  /api/v1/reports/{type}

Reports: Trial Balance, P&L, Balance Sheet, Ageing, Cash Flow.

%

Tax

  • GET  /api/v1/tax-codes
  • GET  /api/v1/reports/gstr-1
  • GET  /api/v1/reports/vat-201
  • GET  /api/v1/reports/tds-payable

Region-aware tax codes and filing-ready return payloads.

Banking

  • POST /api/v1/banking/import-bank-statement
  • POST /api/v1/banking/reconcile
  • GET  /api/v1/reports/bank-reconciliation

Push statements, run auto-match reconciliation, pull the report.

Company & User

  • GET  /api/v1/companies
  • POST /api/v1/companies
  • GET  /api/v1/users
  • POST /api/v1/users
  • POST /api/v1/users/{id}/roles

Provision companies, users and role assignments programmatically.

{ }

Standards & tooling

  • JSON everywhere · standard HTTP status codes
  • 422 responses carry field-level validation
  • Idempotency-Key header on writes
  • Request-Id tracing on every call
  • Rate limit 1000 req/min authenticated
  • OpenAPI 3.0 spec + Swagger UI at /api/docs
  • Auto-generated SDKs
Push, don't poll

Webhooks for every event

Subscribe once and FinSanad calls you the moment something happens. Every delivery is HMAC-SHA256 signed, replay-protected and idempotent, so you can trust exactly-once processing.

po.created po.updated po.approved invoice.created invoice.updated invoice.posted payment.received payment.partial journal.posted delivery_note.invoiced
🔏

HMAC-SHA256 signed

Each payload is signed with your per-tenant secret so you can verify authenticity before you act.

Replay protection

Timestamped signatures reject stale or duplicated deliveries — no replay attacks.

Idempotency

Every event carries a stable id, so retries never double-process on your side.

No lock-in

Import & export — your data stays yours

Bring your existing books in, and take everything out whenever you like. FinSanad reads and writes open formats, and validates every import before a single entry is posted.

Import

  • CSV / Excel — masters, opening balances & transactions
  • Tally XML — bring your existing books across intact
  • Bank statements — CSV, OFX & MT940
  • Every import produces a validation report before posting

Export

  • CSV — raw, portable data
  • Excel — multi-sheet workbooks
  • JSON — API-ready payloads
  • PDF — print-ready statements
🔐

Single sign-on for enterprise

Connect your identity provider with SAML or OIDC so your team signs in with the credentials they already use — centrally provisioned and de-provisioned.

The connected stack

Everything FinSanad plugs into

HRSanad HR & Payroll REST API (OpenAPI 3.0) Webhooks (HMAC-signed) Auto-generated SDKs Tally XML import CSV / Excel Bank feeds (OFX / MT940) e-Invoicing (IRN) JSON / PDF export SSO (SAML / OIDC) Swagger UI /api/docs

Wire FinSanad into your world

See the HRSanad integration, the REST API and webhooks live — mapped to your systems, your region and your workflow. About 30 minutes, no slides.

Request Demo