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

    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