For the complete documentation index, see llms.txt. The full corpus is at llms-full.txt, and agent operating guidance at skill.md. Every page on this site is available as markdown: append .md to any URL, or request it with the header Accept: text/markdown.
Full and final settlements and gratuity projections.
Base URLhttps://api.indpayroll.com/v110 endpoints
GET/fnf
List settlements
Query parameters
organization_id
integer
Organization to act on. Required when the API key can reach more than one organization; optional - and defaulted - when it can reach exactly one.
status
enum: draft, approved, paid, cancelled
—
employee_id
string
—
page
integer
1-based page number.
per_page
integer
Items per page. The engine caps this at 200.
Responses
200Settlements. object
401The key is missing, unknown, or the HMAC signature did not verify. ErrorResponse
POST/fnf
Open a settlement
Builds a draft settlement for an employee who has been exited: the final month's pay, leave encashment, gratuity if the service qualifies, less notice recovery and any outstanding advance.
The employee must already have a date of leaving - call POST /employees/{id}/exit first, or let that call open the settlement for you with create_fnf: true.
Headers
Idempotency-Key
string
A unique key, at most 255 characters, that makes this request safe to retry. Replaying a key within 24 hours returns the original response and does not act again.
Body application/json · required
employee_idrequired
string
—
settlement_date
string (date)
—
include_leave_encashment
boolean
—
leave_balance_days
number
Send when you hold leave balances yourself. Otherwise the engine reads its own.
include_gratuity
boolean
—
notice_recovery_days
number
—
additional_earnings
PayslipLine[]
—
additional_deductions
PayslipLine[]
—
remarks
string
—
Responses
201Draft settlement. FnfSettlement
400The request was malformed or failed validation. ErrorResponse
404No such resource, or it belongs to an organization this key cannot reach. ErrorResponse
409The resource is in a state that forbids the change - a locked or paid run, a duplicate external_id, or a settlement already approved. ErrorResponse
422The request was well-formed but the engine could not compute it - a missing salary structure, no PT state on an employee, or a period with no inputs. ErrorResponse
A unique key, at most 255 characters, that makes this request safe to retry. Replaying a key within 24 hours returns the original response and does not act again.
Body application/json · required
paid_onrequired
string (date)
—
payment_method_id
integer
—
reference
string
—
Responses
200Paid. FnfSettlement
400The request was malformed or failed validation. ErrorResponse
404No such resource, or it belongs to an organization this key cannot reach. ErrorResponse
409The resource is in a state that forbids the change - a locked or paid run, a duplicate external_id, or a settlement already approved. ErrorResponse
Every employee with their years of service, eligibility and accrued amount as on a date - the calculator and the liability report in one.
Query parameters
organization_id
integer
Organization to act on. Required when the API key can reach more than one organization; optional - and defaulted - when it can reach exactly one.
as_on
string (date)
Date to project to. Defaults to today.
eligible_only
boolean
Only employees who have completed five years of continuous service.
page
integer
1-based page number.
per_page
integer
Items per page. The engine caps this at 200.
Responses
200Projections. object
401The key is missing, unknown, or the HMAC signature did not verify. ErrorResponse
GET/gratuity/{employeeId}
One employee's gratuity projection
The statutory formula is returned alongside the amount, so the figure can be checked by hand: 15/26 of the last drawn basic plus DA, per completed year of service, capped at the statutory limit.
Path parameters
employeeIdrequired
string
Employee id, or ext: + your own identifier.
Query parameters
as_on
string (date)
—
Responses
200The projection. GratuityProjection
404No such resource, or it belongs to an organization this key cannot reach. ErrorResponse
Request
curl -X GET https://api.indpayroll.com/v1/gratuity/{employeeId} \
-H "Authorization: Bearer $INDP_API_KEY"
Response · 200
{
"employee_id":"ext:emp-1044",
"employee_name":"Sanjay Patnaik",
"date_of_joining":"2020-06-15",
"as_on":"2026-09-18",
"years_of_service":6.3,
"eligible":true,
"last_drawn_basic_da":33000,
"formula":"(15 / 26) x last drawn basic + DA x completed years",
"amount":114231,
"capped_at_statutory_limit":false
}
POST/gratuity/export
Export the gratuity liability
Builds the same projection as a spreadsheet, for the auditors or the actuary.
Body application/json · required
organization_id
integer
—
as_on
string (date)
—
eligible_only
boolean
—
format
enum: xlsx, csv, pdf
—
Responses
200The requested file. The content type follows format - text/csv, text/plain, application/pdf, or the Office XML type for xlsx.
202Accepted. The work runs asynchronously; poll the returned resource. AsyncAck
400The request was malformed or failed validation. ErrorResponse