Charter Boats API
Claims

Submit Damage Claim

File a damage claim for a completed booking

POST/claims

Submit a damage claim for a completed or confirmed booking. Claims must be submitted within 48 hours of the booking's checkout time. Only one claim is allowed per booking.

Authentication

Requires authentication as the boat's company owner.

X-API-Key: cb_live_xxxxx

Request Body

FieldTypeRequiredDescription
booking_idstringYesBooking ID (UUID)
damage_typestringYesType of damage
descriptionstringYesDetailed description of the damage
claimed_amountnumberYesAmount in USD (converted to cents internally)
photosstring[]NoArray of photo URLs
repair_estimate_urlstringNoURL to repair estimate document
checkin_report_urlstringNoURL to check-in condition report
checkout_report_urlstringNoURL to check-out condition report
additional_docsstring[]NoArray of additional document URLs

Damage Types

The damage_type field accepts any string. Common values:

  • scratch -- Scratch or scuff
  • dent -- Dent or impact damage
  • mechanical -- Mechanical damage
  • interior -- Interior damage
  • missing_item -- Missing equipment
  • other -- Other damage

Request

curl -X POST https://charter.boats/api/claims \
  -H "Content-Type: application/json" \
  -H "X-API-Key: cb_live_xxxxx" \
  -d '{
    "booking_id": "booking-uuid-here",
    "damage_type": "scratch",
    "description": "Large scratch on starboard hull, approximately 2 feet long. Discovered during post-charter inspection.",
    "claimed_amount": 500,
    "photos": [
      "https://storage.example.com/claim-photo-1.jpg",
      "https://storage.example.com/claim-photo-2.jpg"
    ],
    "repair_estimate_url": "https://storage.example.com/estimate.pdf",
    "checkin_report_url": "https://storage.example.com/checkin.pdf",
    "checkout_report_url": "https://storage.example.com/checkout.pdf"
  }'

Response

{
  "success": true,
  "claim": {
    "id": "a1b2c3d4-...",
    "status": "pending_review",
    "claimed_amount": 50000,
    "submitted_at": "2024-01-20T14:30:00Z"
  }
}

Note: claimed_amount in the response is stored in cents (the input value multiplied by 100).

Response Fields

FieldTypeDescription
successbooleanAlways true on success
claim.idstringClaim ID (UUID)
claim.statusstringInitial status (pending_review)
claim.claimed_amountintegerClaimed amount in cents
claim.submitted_atstringISO 8601 timestamp

Claim Statuses

StatusDescription
pending_reviewAwaiting review
info_requestedAdditional information needed
approvedFull amount approved
partially_approvedReduced amount approved
declinedClaim rejected
resolvedClaim completed

Errors

StatusMessage
400Missing required fields
400Claims can only be filed for completed rentals
400Claim deadline has passed. Claims must be submitted within 48 hours of checkout.
400A claim already exists for this booking
404Booking not found

Notifications

When a claim is submitted, email notifications are sent to:

  • The claims team at Charter Boats
  • The guest on the booking
  • The owner who filed the claim (confirmation)

On this page