Loans
Loans to employees and the installments that come out of payroll. An installment is claimed when its month is processed and settled when that run is locked, so outstanding_balance moves with the payroll calendar rather than with the calendar.
Plan feature
These endpoints need a plan that includes Payroll (payroll). On a plan without it, requests return 402 with code: plan_upgrade_required and feature naming what an upgrade would add.
List loan types
GET
/v1/loan_typesQuery parameters
| Name | Type | Required | Description |
|---|---|---|---|
limit | integer | No | Page size. Values above 100 are clamped. |
starting_after | string | No | Opaque cursor from a previous response’s next_cursor. |
updated_since | timestamp | No | Return records changed at or after this instant. Tracks the record itself, not its child collections. |
is_active | boolean | No | Filter by whether the record is in use. |
Responses
| Status | Meaning |
|---|---|
200 | A page of loan types. |
401 | The API key is missing, malformed, revoked or expired. |
402 | The workspace's plan does not include Payroll (plan_upgrade_required). |
403 | The key does not carry the required scopes. |
429 | Rate limit exceeded. See the RateLimit-* headers. |
Retrieve a loan type
GET
/v1/loan_types/{id}Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
id | string | Yes | The identifier returned as id on the object. |
Responses
| Status | Meaning |
|---|---|
200 | The loan type. |
401 | The API key is missing, malformed, revoked or expired. |
402 | The workspace's plan does not include Payroll (plan_upgrade_required). |
403 | The key does not carry the required scopes. |
404 | No such loan type in this workspace. |
429 | Rate limit exceeded. See the RateLimit-* headers. |
List loans
GET
/v1/loansQuery parameters
| Name | Type | Required | Description |
|---|---|---|---|
limit | integer | No | Page size. Values above 100 are clamped. |
starting_after | string | No | Opaque cursor from a previous response’s next_cursor. |
updated_since | timestamp | No | Return records changed at or after this instant. Tracks the record itself, not its child collections. |
employee_id | string | No | Only records for this employee. |
loan_type_id | string | No | Only loans of this kind. |
status | string | No | Only loans in this state. |
Responses
| Status | Meaning |
|---|---|
200 | A page of loans. |
401 | The API key is missing, malformed, revoked or expired. |
402 | The workspace's plan does not include Payroll (plan_upgrade_required). |
403 | The key does not carry the required scopes. |
429 | Rate limit exceeded. See the RateLimit-* headers. |
Retrieve a loan
GET
/v1/loans/{id}Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
id | string | Yes | The identifier returned as id on the object. |
Responses
| Status | Meaning |
|---|---|
200 | The loan. |
401 | The API key is missing, malformed, revoked or expired. |
402 | The workspace's plan does not include Payroll (plan_upgrade_required). |
403 | The key does not carry the required scopes. |
404 | No such loan in this workspace. |
429 | Rate limit exceeded. See the RateLimit-* headers. |
List loan installments
GET
/v1/loan_installmentsQuery parameters
| Name | Type | Required | Description |
|---|---|---|---|
limit | integer | No | Page size. Values above 100 are clamped. |
starting_after | string | No | Opaque cursor from a previous response’s next_cursor. |
updated_since | timestamp | No | Return records changed at or after this instant. Tracks the record itself, not its child collections. |
loan_id | string | No | Only installments of this loan. |
status | string | No | Only installments in this state. |
due_month | integer | No | Calendar month due, 1–12. |
due_year | integer | No | Calendar year due. |
Responses
| Status | Meaning |
|---|---|
200 | A page of loan installments. |
401 | The API key is missing, malformed, revoked or expired. |
402 | The workspace's plan does not include Payroll (plan_upgrade_required). |
403 | The key does not carry the required scopes. |
429 | Rate limit exceeded. See the RateLimit-* headers. |
Retrieve a loan installment
GET
/v1/loan_installments/{id}Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
id | string | Yes | The identifier returned as id on the object. |
Responses
| Status | Meaning |
|---|---|
200 | The loan installment. |
401 | The API key is missing, malformed, revoked or expired. |
402 | The workspace's plan does not include Payroll (plan_upgrade_required). |
403 | The key does not carry the required scopes. |
404 | No such loan installment in this workspace. |
429 | Rate limit exceeded. See the RateLimit-* headers. |