Payroll

Payroll runs — month payslip generation/approval, salary advances, and net/statutory settlement. Compensation-bearing; employment records themselves are `hr`.

14 endpoints·Scopes: payroll:read, payroll:write
GET/api/hr/me/payslips#

The signed-in employee's own payslips.

scope · payroll:read

Returns the payslips data for the own employee records feature.

Scope: payroll:read
Endpoint: GET /api/hr/me/payslips

Example request

curl "https://app.guliel.com/api/hr/me/payslips?organizationId=value" \
  -H "Authorization: Bearer $GULIEL_API_KEY"

Query parameters

  • organizationIdreq
    string
  • year
    integer

Response (200/201)

  • payslipsreq
    array<object>
    • idreq
      string
    • statusreq
      string
    • currencyreq
      string
    • totalreq
      number
    • periodStartreq
      string | null
    • periodEndreq
      string | null
    • issueDatereq
      string

Error responses

400Validation
401Unauthenticated
403Forbidden
500Internal
POST/api/payroll/advance#

Run advance (payrolls)

scope · payroll:writerole · CONTRIBUTOR+

Performs the advance operation for the payrolls feature.

Scope: payroll:write
Min role: CONTRIBUTOR or higher
Endpoint: POST /api/payroll/advance

Example request

curl -X POST "https://app.guliel.com/api/payroll/advance" \
  -H "Authorization: Bearer $GULIEL_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{
  "organizationId": "abc123",
  "counterpartyId": "abc123",
  "amount": 100,
  "paidAt": "string"
}'

Request body

  • organizationIdreq
    string
  • counterpartyIdreq
    string
  • amountreq
    number
  • paidAtreq
    string
  • method
    string

Response (200/201)

  • paymentIdreq
    string

Error responses

400Validation
401Unauthenticated
403Forbidden
429RateLimit
500Internal
POST/api/payroll/apply#

Run apply (payrolls)

scope · payroll:writerole · CONTRIBUTOR+

Performs the apply operation for the payrolls feature.

Scope: payroll:write
Min role: CONTRIBUTOR or higher
Endpoint: POST /api/payroll/apply

Example request

curl -X POST "https://app.guliel.com/api/payroll/apply" \
  -H "Authorization: Bearer $GULIEL_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{
  "organizationId": "abc123",
  "payslipId": "abc123"
}'

Request body

  • organizationIdreq
    string
  • payslipIdreq
    string
  • authorizeFinalPaySetoff
    boolean
  • consent
    object
    • affirmedreq
      boolean
    • at
      string
    • attachmentId
      string

Response (200/201)

  • appliedreq
    number
  • statusreq
    string
  • residualAdvanceDebtreq
    number

Error responses

400Validation
401Unauthenticated
403Forbidden
429RateLimit
500Internal
POST/api/payroll/approve#

Run approve (payrolls)

scope · payroll:writerole · CONTRIBUTOR+

Performs the approve operation for the payrolls feature.

Scope: payroll:write
Min role: CONTRIBUTOR or higher
Endpoint: POST /api/payroll/approve

Example request

curl -X POST "https://app.guliel.com/api/payroll/approve" \
  -H "Authorization: Bearer $GULIEL_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{
  "organizationId": "abc123",
  "month": "string"
}'

Request body

  • organizationIdreq
    string
  • monthreq
    string
  • payslipIds
    array<string>

Response (200/201)

  • approvedreq
    integer

Error responses

400Validation
401Unauthenticated
403Forbidden
429RateLimit
500Internal
POST/api/payroll/consent-upload#

Run consent upload (payrolls)

scope · payroll:writerole · CONTRIBUTOR+

Performs the consent-upload operation for the payrolls feature.

Scope: payroll:write
Min role: CONTRIBUTOR or higher
Endpoint: POST /api/payroll/consent-upload

Example request

curl -X POST "https://app.guliel.com/api/payroll/consent-upload" \
  -H "Authorization: Bearer $GULIEL_API_KEY"

Request body

  • organizationId
    string
  • payslipId
    string
  • file
    object
    • fileNamereq
      string
    • fileType
      stringMIME type. Inferred from the filename or download response when omitted.
    • base64
      stringStandard padded base64 file bytes, without a data-URL prefix. Supply exactly one of base64 or url.
    • url
      string <uri>Public HTTP(S) URL that returns file bytes; no authentication or sharing/login pages. Download failure fails the entire operation.

Response (200/201)

  • idreq
    string
  • documentIdreq
    string
  • fileNamereq
    string
  • fileTypereq
    string
  • fileSizereq
    integer
  • storageUrlreq
    string

Error responses

400Validation
401Unauthenticated
403Forbidden
429RateLimit
500Internal
POST/api/payroll/generate#

Run generate (payrolls)

scope · payroll:writerole · CONTRIBUTOR+

Performs the generate operation for the payrolls feature.

Scope: payroll:write
Min role: CONTRIBUTOR or higher
Endpoint: POST /api/payroll/generate

Example request

curl -X POST "https://app.guliel.com/api/payroll/generate" \
  -H "Authorization: Bearer $GULIEL_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{
  "organizationId": "abc123",
  "month": "string"
}'

Request body

  • organizationIdreq
    string
  • monthreq
    string
  • employeeIds
    array<string>
  • runInputs
    object
    • additionalWage
      number
    • adjustments
      array<object>
      • descriptionreq
        string
      • amountreq
        number
      • kind
        enum<3>
        OTHER · LEAVE_PAY · REIMBURSEMENT

Response (200/201)

  • generatedreq
    integer
  • errorsreq
    array<object>
    • counterpartyIdreq
      string
    • messagereq
      string

Error responses

400Validation
401Unauthenticated
403Forbidden
429RateLimit
500Internal
POST/api/payroll/gpl-settle#

Run gpl settle (payrolls)

scope · payroll:writerole · CONTRIBUTOR+

Performs the gpl-settle operation for the payrolls feature.

Scope: payroll:write
Min role: CONTRIBUTOR or higher
Endpoint: POST /api/payroll/gpl-settle

Example request

curl -X POST "https://app.guliel.com/api/payroll/gpl-settle" \
  -H "Authorization: Bearer $GULIEL_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{
  "organizationId": "abc123",
  "authorityOrgId": "abc123",
  "lineIds": [
    "string"
  ],
  "paidAt": "string"
}'

Request body

  • organizationIdreq
    string
  • authorityOrgIdreq
    string
  • lineIdsreq
    array<string>
  • amount
    number
  • paidAtreq
    string
  • method
    string

Response (200/201)

  • paymentIdreq
    string
  • allocatedreq
    number
  • outstandingreq
    number

Error responses

400Validation
401Unauthenticated
403Forbidden
429RateLimit
500Internal
POST/api/payroll/pay#

Run pay (payrolls)

scope · payroll:writerole · CONTRIBUTOR+

Performs the pay operation for the payrolls feature.

Scope: payroll:write
Min role: CONTRIBUTOR or higher
Endpoint: POST /api/payroll/pay

Example request

curl -X POST "https://app.guliel.com/api/payroll/pay" \
  -H "Authorization: Bearer $GULIEL_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{
  "organizationId": "abc123",
  "payslipId": "abc123",
  "kind": "NET",
  "paidAt": "string"
}'

Request body

  • organizationIdreq
    string
  • payslipIdreq
    string
  • kindreq
    enum<2>
    NET · STATUTORY
  • paidAtreq
    string
  • method
    string
  • claimDocumentIds
    array<string>Approved expense claims the employee fronted, to reimburse with this net payment. Each must be booked, owed to THIS payslip's employee, in the payslip's currency, and still outstanding.

Response (200/201)

  • paymentIdreq
    string
  • allocatedreq
    number
  • statusreq
    string

Error responses

400Validation
401Unauthenticated
403Forbidden
429RateLimit
500Internal
GET/api/payroll/payments#

Get payments (payrolls)

scope · payroll:readrole · CONTRIBUTOR+

Returns the payments data for the payrolls feature.

Scope: payroll:read
Min role: CONTRIBUTOR or higher
Endpoint: GET /api/payroll/payments

Example request

curl "https://app.guliel.com/api/payroll/payments?organizationId=value" \
  -H "Authorization: Bearer $GULIEL_API_KEY"

Query parameters

  • organizationIdreq
    string
  • monthreq
    string

Response (200/201)

  • monthreq
    string
  • paymentsreq
    array<object>
    • idreq
      string
    • paidAtreq
      string
    • counterpartyIdreq
      string | null
    • employeeNamereq
      string
    • amountreq
      number
    • methodreq
      string | null
    • allocatedTotalreq
      number
    • openRemainderreq
      number
    • sourcereq
      enum<3>
      ADVANCE · NET · STATUTORY
    • payslipIdsreq
      array<string>

Error responses

400Validation
401Unauthenticated
403Forbidden
500Internal
DELETE/api/payroll/payslip#

Remove payslip (payrolls)

scope · payroll:writerole · CONTRIBUTOR+

Removes the payslip configuration for the payrolls feature.

Scope: payroll:write
Min role: CONTRIBUTOR or higher
Endpoint: DELETE /api/payroll/payslip

Example request

curl -X DELETE "https://app.guliel.com/api/payroll/payslip?organizationId=value" \
  -H "Authorization: Bearer $GULIEL_API_KEY"

Query parameters

  • organizationIdreq
    string
  • payslipIdreq
    string

Response (200/201)

  • deletedreq
    boolean

Error responses

400Validation
401Unauthenticated
403Forbidden
429RateLimit
500Internal
POST/api/payroll/regenerate#

Run regenerate (payrolls)

scope · payroll:writerole · CONTRIBUTOR+

Performs the regenerate operation for the payrolls feature.

Scope: payroll:write
Min role: CONTRIBUTOR or higher
Endpoint: POST /api/payroll/regenerate

Example request

curl -X POST "https://app.guliel.com/api/payroll/regenerate" \
  -H "Authorization: Bearer $GULIEL_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{
  "organizationId": "abc123",
  "payslipId": "abc123"
}'

Request body

  • organizationIdreq
    string
  • payslipIdreq
    string
  • runInputs
    object
    • additionalWage
      number
    • adjustments
      array<object>
      • descriptionreq
        string
      • amountreq
        number
      • kind
        enum<3>
        OTHER · LEAVE_PAY · REIMBURSEMENT

Response (200/201)

  • documentIdreq
    string
  • totalreq
    number
  • lineCountreq
    integer

Error responses

400Validation
401Unauthenticated
403Forbidden
429RateLimit
500Internal
GET/api/payroll/summary#

Get summary (payrolls)

scope · payroll:readrole · CONTRIBUTOR+

Returns the summary data for the payrolls feature.

Scope: payroll:read
Min role: CONTRIBUTOR or higher
Endpoint: GET /api/payroll/summary

Example request

curl "https://app.guliel.com/api/payroll/summary?organizationId=value" \
  -H "Authorization: Bearer $GULIEL_API_KEY"

Query parameters

  • organizationIdreq
    string
  • monthreq
    string

Response (200/201)

  • monthreq
    string
  • schemesreq
    array<string>
  • schemeLabelsreq
    object
  • employeesreq
    array<object>
    • counterpartyIdreq
      string
    • namereq
      string
    • payslipId
      string
    • status
      enum<3>
      DRAFT · APPROVED · PAID
    • gross
      number
    • net
      number
    • schemeAmounts
      object
    • openCreditreq
      number
    • netOutstanding
      number
    • statutoryOutstanding
      number
    • hasAppliedAdvances
      boolean
    • hasPayments
      boolean
    • isFinalPayslip
      boolean
  • totalsreq
    object
    • grossreq
      number
    • netreq
      number
    • employerCostreq
      number
    • openCreditsreq
      number
  • gplOutstandingreq
    array<object>
    • schemereq
      string
    • authorityOrgIdreq
      string | null
    • authorityNamereq
      string | null
    • claimedreq
      number
    • settledreq
      number
    • outstandingreq
      number
    • oldestUnsettledCoversreq
      string | null
    • ageDaysreq
      number | null
    • lineIdsreq
      array<string>
  • reimbOutstandingreq
    array<object>
    • counterpartyIdreq
      string
    • amountreq
      number
    • currencyreq
      string
    • documentIdsreq
      array<string>

Error responses

400Validation
401Unauthenticated
403Forbidden
500Internal
POST/api/payroll/unapply#

Run unapply (payrolls)

scope · payroll:writerole · CONTRIBUTOR+

Performs the unapply operation for the payrolls feature.

Scope: payroll:write
Min role: CONTRIBUTOR or higher
Endpoint: POST /api/payroll/unapply

Example request

curl -X POST "https://app.guliel.com/api/payroll/unapply" \
  -H "Authorization: Bearer $GULIEL_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{
  "organizationId": "abc123",
  "payslipId": "abc123"
}'

Request body

  • organizationIdreq
    string
  • payslipIdreq
    string

Response (200/201)

  • unappliedreq
    number
  • statusreq
    string
  • attachedPaymentCountreq
    integer

Error responses

400Validation
401Unauthenticated
403Forbidden
429RateLimit
500Internal
POST/api/payroll/void#

Run void (payrolls)

scope · payroll:writerole · CONTRIBUTOR+

Performs the void operation for the payrolls feature.

Scope: payroll:write
Min role: CONTRIBUTOR or higher
Endpoint: POST /api/payroll/void

Example request

curl -X POST "https://app.guliel.com/api/payroll/void" \
  -H "Authorization: Bearer $GULIEL_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{
  "organizationId": "abc123",
  "payslipId": "abc123"
}'

Request body

  • organizationIdreq
    string
  • payslipIdreq
    string

Response (200/201)

  • statusreq
    string

Error responses

400Validation
401Unauthenticated
403Forbidden
429RateLimit
500Internal