---
title: "Keep Bonus"
method: POST
path: "/api/callbacks/{callback_id}/keep-bonus"
tags: ["callbacks"]
---

# Keep Bonus

`POST /api/callbacks/{callback_id}/keep-bonus`

## Request

- Base URL: `https://api.electricair.io` (the document declares no server; this is the origin it was published from)
- URL: `https://api.electricair.io/api/callbacks/{callback_id}/keep-bonus`
- Auth: none declared

A manager keeps (or takes back) the crew's install bonus despite the callback.

## Path parameters

- `callback_id` integer, required

## Request body

- KeepBonusInput
  - `keep` boolean, required
  - `reason` string

## Response `200`

OK

- CallbackSchema
  - `id` integer, required
  - `status` string, required
  - `status_label` string, required
  - `source` string, required
  - `source_label` string, required
  - `problem` string, required
  - `customer_name` string, required
  - `address` string, required
  - `original_job` JobRefSchema, required
    - `id` integer, required
    - `number` string, required
    - `summary` string, required
    - `job_type_name` string, required
    - `status` string, required
    - `status_label` string, required
    - `completed_at` string, date-time, nullable
    - `revenue` number, nullable
  - `return_job` JobRefSchema
    - `id` integer, required
    - `number` string, required
    - `summary` string, required
    - `job_type_name` string, required
    - `status` string, required
    - `status_label` string, required
    - `completed_at` string, date-time, nullable
    - `revenue` number, nullable
  - `days_after_install` integer, nullable
  - `reported_by` string, nullable
  - `created_at` string, date-time, required
  - `outcome` string, required
  - `outcome_label` string, required
  - `reason` string, required
  - `reason_label` string, required
  - `fault` string, required
  - `fault_label` string, required
  - `responsible` CallbackPersonSchema[], required
    - `id` integer, required
    - `name` string, required
  - `counts_against_crew` boolean, required
  - `notes` string, required
  - `keep_bonus` boolean, required
  - `keep_bonus_reason` string, required
  - `triaged_by` string, nullable
  - `triaged_at` string, date-time, nullable
  - `resolved_at` string, date-time, nullable
  - `cost` CostSchema, required
    - `labor_hours` number, required
    - `labor` number, required
    - `parts` number, required
    - `other` number, required
    - `total` number, required
    - `original_revenue` number, nullable
    - `share_of_revenue` number, nullable
  - `bonus_at_risk` BonusRiskSchema[], required
    - `rule` string, required
    - `amount` number, required
    - `kept` boolean, required
  - `photo_urls` string[], required

## Changes

> 22 revisions in range; 1 not diffed.

- **2026-11-02** `e9b987a69618`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/electricair/apis/electric-air-autoquote-api/changes/api/callbacks/:callback_id/keep-bonus/post.md)

---

[API](https://skmtc.dev/electricair/apis/electric-air-autoquote-api.md) - [All operations](https://skmtc.dev/electricair/apis/electric-air-autoquote-api/llms.txt) - [OpenAPI document](https://skmtc.dev/electricair/apis/electric-air-autoquote-api/revisions/a13d832a5676?raw)
