Skip to content

Pay Run routes: approve, pay, prepare, void

The Pay Run Verbs approve, pay, prepare, void as api.sb routes, with inputs, result, refusals and an example.

Reference for Pay Run, one group of Pay Run routes.

PayRun.approve

Approve accepts a prepared Pay Run within the approver’s Mandate, books its cost, and schedules payment to land on the pay date. Verb page.

Text
POST /{namespace}/pay-runs/{payRun}/approve

Path: payRun. Emits PayRun.approved.

Inputs

InputTypeRequiredDescription
payRunPay RunrequiredThe prepared Pay Run.

Returns

OutputTypeRequiredDescription
payRunPay RunrequiredThe approved Pay Run, scheduled for its pay date.

Refuses when

CheckErrorFixThen call
The key is valid, but its scopes do not allow this operation.forbiddenUse a key whose scopes cover the operation, or ask an owner of the namespace to grant them.None.

Example

Terminal
curl -X POST https://api.sb/leaseline.app/pay-runs/payrun_hqqWu5rAyZ/approve \
  -H "Authorization: Bearer $STARTUP_BUILDER_API_KEY"
JSON
{
  "api": "https://api.sb/leaseline.app",
  "payRun": {
    "$id": "https://api.sb/leaseline.app/pay-runs/payrun_hqqWu5rAyZ",
    "$type": "PayRun",
    "company": "company_28zYNZEno0",
    "periodStart": "2026-10-22",
    "periodEnd": "2026-10-22",
    "payDate": "2026-10-22"
  },
  "action": {
    "$id": "https://api.sb/leaseline.app/actions/act_br07HsG8MG",
    "operation": "PayRun.approve",
    "status": "done"
  },
  "links": {
    "self": "https://api.sb/leaseline.app/actions/act_br07HsG8MG"
  }
}

PayRun.pay

Pay funds an approved Pay Run: net pay to each employee’s bank on the pay date, taxes and deductions to the payroll provider. Verb page.

Text
POST /{namespace}/pay-runs/{payRun}/pay

Path: payRun. Emits PayRun.paid.

Inputs

InputTypeRequiredDescription
payRunPay RunrequiredThe approved Pay Run.

Returns

OutputTypeRequiredDescription
payRunPay RunrequiredThe paid Pay Run.
transactionTransactionrequiredThe funding Transaction.

Refuses when

CheckErrorFixThen call
The key is valid, but its scopes do not allow this operation.forbiddenUse a key whose scopes cover the operation, or ask an owner of the namespace to grant them.None.

Example

Terminal
curl -X POST https://api.sb/leaseline.app/pay-runs/payrun_hqqWu5rAyZ/pay \
  -H "Authorization: Bearer $STARTUP_BUILDER_API_KEY"
JSON
{
  "api": "https://api.sb/leaseline.app",
  "payRun": {
    "$id": "https://api.sb/leaseline.app/pay-runs/payrun_hqqWu5rAyZ",
    "$type": "PayRun",
    "company": "company_28zYNZEno0",
    "periodStart": "2026-10-22",
    "periodEnd": "2026-10-22",
    "payDate": "2026-10-22"
  },
  "transaction": {
    "$id": "https://api.sb/leaseline.app/transactions/txn_XoxtZe3CQI",
    "$type": "Transaction",
    "kind": "charge",
    "amount": {
      "amount": 29,
      "currency": "USD"
    }
  },
  "action": {
    "$id": "https://api.sb/leaseline.app/actions/act_br07HsG8MG",
    "operation": "PayRun.pay",
    "status": "done"
  },
  "links": {
    "self": "https://api.sb/leaseline.app/actions/act_br07HsG8MG"
  }
}

PayRun.prepare

Prepare computes one pay period’s gross pay, withholding, deductions and employer taxes for each employee, and holds the Pay Run for approval. Verb page.

Text
POST /{namespace}/pay-runs/prepare

Body, as JSON: the inputs. Emits PayRun.prepared.

Inputs

InputTypeRequiredDescription
companyCompanyrequiredThe employer Company.
periodStartdaterequiredThe first day of the pay period.
periodEnddaterequiredThe last day of the pay period.
payDatedaterequiredThe day net pay should land.
kindstringDefaults to regular; offCycle pays outside the schedule.
humanslist of HumanOnly these employees. Defaults to every employee of the Company.

Returns

OutputTypeRequiredDescription
payRunPay RunrequiredThe prepared Pay Run, with every amount per employee.

Refuses when

CheckErrorFixThen call
The key is valid, but its scopes do not allow this operation.forbiddenUse a key whose scopes cover the operation, or ask an owner of the namespace to grant them.None.

Example

Terminal
curl -X POST https://api.sb/leaseline.app/pay-runs/prepare \
  -H "Authorization: Bearer $STARTUP_BUILDER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"company":"company_28zYNZEno0","periodStart":"2026-10-22","periodEnd":"2026-10-22","payDate":"2026-10-22"}'
JSON
{
  "api": "https://api.sb/leaseline.app",
  "payRun": {
    "$id": "https://api.sb/leaseline.app/pay-runs/payrun_hqqWu5rAyZ",
    "$type": "PayRun",
    "company": "company_28zYNZEno0",
    "periodStart": "2026-10-22",
    "periodEnd": "2026-10-22",
    "payDate": "2026-10-22"
  },
  "action": {
    "$id": "https://api.sb/leaseline.app/actions/act_br07HsG8MG",
    "operation": "PayRun.prepare",
    "status": "done"
  },
  "links": {
    "self": "https://api.sb/leaseline.app/actions/act_br07HsG8MG"
  }
}

PayRun.void

Void sets aside a prepared Pay Run that is wrong, so a corrected one can be prepared; the record stays. Verb page.

Text
POST /{namespace}/pay-runs/{payRun}/void

Path: payRun. Body, as JSON: the other inputs. Emits PayRun.voided.

Inputs

InputTypeRequiredDescription
payRunPay RunrequiredThe prepared Pay Run.
reasontextrequiredWhy it was set aside.

Returns

OutputTypeRequiredDescription
payRunPay RunrequiredThe voided Pay Run.

Refuses when

CheckErrorFixThen call
The key is valid, but its scopes do not allow this operation.forbiddenUse a key whose scopes cover the operation, or ask an owner of the namespace to grant them.None.

Example

Terminal
curl -X POST https://api.sb/leaseline.app/pay-runs/payrun_hqqWu5rAyZ/void \
  -H "Authorization: Bearer $STARTUP_BUILDER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"reason":"Example reason"}'
JSON
{
  "api": "https://api.sb/leaseline.app",
  "payRun": {
    "$id": "https://api.sb/leaseline.app/pay-runs/payrun_hqqWu5rAyZ",
    "$type": "PayRun",
    "company": "company_28zYNZEno0",
    "periodStart": "2026-10-22",
    "periodEnd": "2026-10-22",
    "payDate": "2026-10-22"
  },
  "action": {
    "$id": "https://api.sb/leaseline.app/actions/act_br07HsG8MG",
    "operation": "PayRun.void",
    "status": "done"
  },
  "links": {
    "self": "https://api.sb/leaseline.app/actions/act_br07HsG8MG"
  }
}