PatchQuote

API endpoints for patching and updating quotes

PatchQuote

This API allows you to edit a Quote via API. This feature will be built up over time. Initially supporting a limited set of functionality as listed on each respective screen.

Supplementary SWAGGER documentation is available here: api.catch-e.com/docs/#/Quotes/patchQuote
All text fields must only contain characters found in the CHARSET=latin1 (ISO 8859-1) character set. Refer to wikipedia for additional details.

This page has been broken down to reflect the tab order on the Quote screens available in the UI. Each page notes the fields that can be updated via patchQuote.
A single patchQuote request can be made that includes one or all fields regardless of which screen the fields reside.

patchQuote β†’ Contract | Vehicle | Options | Finance | Lease | Events | Bespoke Fields β†’ patchQuote Supporting APIs

Go to the patchQuote Supporting APIs page for details of the APIs you can use to support patchQuote functions.

NOTE: Pass a blank body in the patchQuote request to recalculate the quote using the existing stored variables.

Permissions

Note: This permission and API are not available by default.
Contact your Account Manager to get access to this API.
To run this API, the nominated 'web-services' role needs to be given permission.

If you are not actively using the API, leave the permission off for better security.

Go to Roles / Apis and check on Quotes:Update.

Authentication

Authenticate with the API before running this API.

HTTP Method

Use the HTTP Method 'PATCH' for consuming this web service.

URL Examples

https://api.catch-e.com/qt/quotes/100000
https://api.catch-e.com/qt/quotes/
https://api.catch-e.com/qt/quotes/100000

Parameters - Path Variables

Key

Format

Notes

Mandatory

quote_id

string

Target Quote ID to edit.

Yes

Headers

Key

Format

Notes

Mandatory

Audit-User-Id

string

If an Authenticated API user has the Audit:UserIdOverride permission, an optional header Audit-User-Id can be supplied on supported web-services that will create any associated Audit Records with the user_id specified.

No

Body - JSON

The fields listed below apply to the quote generally.

JSON Field

Format

Notes

Mandatory

overridewarningsflag

string

If 'no', quotes will be validated and will not update if a warning is given. If 'yes' the alerts below will be ignored and the quote will be updated. Vehicle Maintenance Program (VMP) - Maintenance program budget contains negative values

No

JSON example

This example displays most of the available input fields. For complete list of fields please visit api.catch-e.com/docs/#/Quotes/patchQuote

https://api.catch-e.com/qt/quotes/
{
  "after_hours_assistance_flag": "no",
  "allowances": 0,
  "annual_kms": 0,
  "annual_salary": 0,
  "application_date": "YYYY-MM-DD",
  "application_reference": "string",
  "application_status_flag": "string",
  "ato_loan_flag": "no",
  "base_rate": 0,
  "bespoke_field_values": {},
  "bonus_amount_gst": 0,
  "bonus_amount_net": 0,
  "carbon_emissions_offset": {
    "included_flag": "yes"
  },
  "claimable_gst": 0,
  "client_contact_name": "string",
  "client_email": "user@example.com",
  "client_fax": "string",
  "client_group_flag": "yes",
  "client_id": "string",
  "client_name": "string",
  "client_phone": "string",
  "colour_preference": "string",
  "colour_preference_2": "string",
  "colour_preference_3": "string",
  "colour_preference_note": "string",
  "comments": "string",
  "comments_internal": "string",
  "competitor_id": "string",
  "competitor_margin_id": "string",
  "contract_kms": 0,
  "ctp_initial_gst": 0,
  "ctp_initial_net": 0,
  "date": "YYYY-MM-DD",
  "date_first_held": "2025-02-13",
  "deal_type_id": "string",
  "dealer_comment": "string",
  "dealer_delivery_gst": 0,
  "dealer_delivery_net": 0,
  "dealer_discount_gst": 0,
  "dealer_discount_net": 0,
  "dealer_rebate_gst": 0,
  "dealer_rebate_net": 0,
  "delivery_location_type": "country",
  "deposit_gst": 0,
  "deposit_net": 0,
  "discount_gst": 0,
  "discount_net": 0,
  "discount_type_id": "string",
  "disposal_fee": 0,
  "disposal_flag": "no",
  "driver_email": "user@example.com",
  "driver_fax": "string",
  "driver_phone": "string",
  "driver_given_name": "string",
  "driver_id": "string",
  "driver_surname": "string",
  "duration": 0,
  "ecm_flag": "yes",
  "employer_fbt_type": "full-fbt-payable",
  "establishment_fee": 0,
  "excess_km_flag": "yes",
  "fbt_benefit_type": "statutory",
  "fbt_business_use": 0,
  "fbt_treatment_type": "standard",
  "fbt_value": 0,
  "finance_type_id": "string",
  "fuel": {
    "fuel_type_id": "string",
    "cost_per_litre": 0,
    "usage_type": "metro",
    "litres_per_100km": 0,
    "monthly_amount_net": 0,
    "included_flag": "yes"
  },
  "gap_insurance_flag": "no",
  "inclusion_plans": [
    {
      "inclusion_code": "string",
      "inclusion_plan_code": "string",
      "inclusion_plan_code_qualified": "string",
      "retail_price_gross": 0,
      "included_flag": "yes"
    }
  ],
  "insurance": {
    "supplier_id": "string",
    "insurance_type_id": "string",
    "billing_type": "string",
    "claim_excess": 0,
    "annual_insurance": 0,
    "fund_1st_year_flag": "no",
    "monthly_amount_net": 0,
    "included_flag": "yes"
  },
  "insurance_at_fault_flag": "no",
  "insurance_conviction_flag": "no",
  "insurance_loading_types": {
    "past_claims": {
      "insurance_loading_type_id": "string"
    },
    "licence": {
      "insurance_loading_type_id": "string"
    },
    "driver_restriction": {
      "insurance_loading_type_id": "string"
    }
  },
  "insurance_loss_licence_flag": "no",
  "insurer_location_id": "string",
  "insurer_location_postcode": "string",
  "list_price_gst": 0,
  "list_price_net": 0,
  "location_name": "string",
  "location_registration_id": "string",
  "lock_comprehensive_insurance_flag": "no",
  "lock_dealer_discount_flag": "no",
  "lock_discount_flag": "no",
  "lock_fbt_value_flag": "yes",
  "lock_luxury_car_tax_flag": "no",
  "lock_purchase_stamp_duty_flag": "no",
  "lock_quote_flag": "no",
  "luxury_car_tax": 0,
  "luxury_car_tax_paid_flag": "yes",
  "lti": {
    "lti_top_up_benefit_id": "string",
    "retail_price_gross": 0,
    "included_flag": "yes"
  },
  "maintenance_service": {
    "maintenance_service_profile_id": "string",
    "service_kms": 0,
    "service_mths": 0,
    "monthly_amount_net": 0,
    "included_flag": "yes"
  },
  "margin_gst": 0,
  "margin_net": 0,
  "new_used": "new",
  "odometer": 0,
  "opportunity_id": "string",
  "opportunity_number": "string",
  "opportunity_stage_id": "string",
  "optional_equipment": [
    {
      "optional_equipment_id": "string",
      "description": "string",
      "cost_price_net": 0,
      "list_price_net": 0,
      "discount_net": 0,
      "gst": 0,
      "residual_rate": 0,
      "included_flag": "yes"
    }
  ],
  "originator_fee": 0,
  "originator_id": "string",
  "package_admin_fee": 0,
  "packaging_advice_fee": 0,
  "parent_quote_id": "string",
  "pay_cycle_id": "string",
  "plate_year": 0,
  "policy_owner_type": "driver",
  "post_tax_existing": 0,
  "posting_map_id": "string",
  "pre_tax_existing": 0,
  "premium_plates_net": 0,
  "previous_lease_start": "2025-02-13",
  "previous_fbt_value": 0,
  "price_comment": "string",
  "pricing_received": "string",
  "pricing_reference": "string",
  "pricing_requested": "string",
  "procurement_fee": 0,
  "procurement_flag": "no",
  "purchase_stamp_duty": 0,
  "quote_date": "YYYY-MM-DD",
  "quote_status_id": "string",
  "rebate_gst": 0,
  "rebate_net": 0,
  "reduced_super_flag": "no",
  "redundancy_insurance_flag": "no",
  "reg_ctp": {
    "annual_reg": 0,
    "annual_ctp": 0,
    "annual_plates": 0,
    "renewals": 0,
    "monthly_amount_net": 0,
    "included_flag": "yes"
  },
  "reg_initial_net": 0,
  "relief_vehicle": {
    "monthly_amount_net": 0,
    "included_flag": "yes"
  },
  "residual_net": 0,
  "roadside_assistance": {
    "roadside_assistance_plan_id": "string",
    "premium": 0,
    "cost": 0,
    "monthly_amount_net": 0,
    "included_flag": "yes"
  },
  "small_damage_repairs": {
    "small_damage_repairs_id": "string",
    "premium": 0,
    "monthly_amount_net": 0,
    "included_flag": "yes"
  },
  "supplier_id_dealer": "string",
  "state": "NSW",
  "superannuation": 0,
  "term": 0,
  "trade_in_amount_gst": 0,
  "trade_in_amount_net": 0,
  "trade_in_reg_no": "string",
  "trim_preference": "string",
  "tyres": {
    "tyre_id": "string",
    "tyres_per_set": 0,
    "tyre_km_interval": 0,
    "unit_cost_net": 0,
    "limit_flag": "no",
    "tyres_estimated": 0,
    "monthly_amount_net": 0,
    "included_flag": "yes"
  },
  "tyre_rim_insurance": {
    "tyre_rim_insurance_plan_id": "string",
    "included_flag": "yes"
  },
  "user_id_assigned": "string",
  "user_id_client_manager": "string",
  "variant_id": "string",
  "vehicle_maintenance_program": {
    "monthly_amount_net": 0,
    "included_flag": "yes"
  },
  "vehicle_tracking_system_flag": "yes",
  "vehicle_usage_type_id": "string",
  "walkaway": {
    "walkaway_plan_id": "string",
    "included_flag": "yes"
  },
  "warranty_kms": 0,
  "warranty_mths": 0,
  "override_warnings_flag": "no"
}

Response Details

Validation Messages

200 OK

Comments

{
  "accepted_count": 0,
  "accident_management_fee": null,
  "advance_arrears": "advance",
  "after_hours_assistance_flag": "no",
  "allowances": 0,
  "annual_salary": 90000,
  "application_collection_date": "0000-00-00",
  "application_date": "0000-00-00 00:00:00",
  "application_reference": "",
  "application_status": "",
  "application_status_flag": "",
  "arrears_interest": 0,
  "ato_loan_flag": "no",
  "base_rate": 0.052,
  "base_residual_rate": 0,
  "billing_periods": 36,
  "bonus_amount_gst": 0,
  "bonus_amount_net": 0,
  "broker_fee": 0,
  "broker_rate": 0,
  "budgets": {
    "CEO": {
      "posting_class_id": "100065",
      "amount_net": 12.03,
      "amount_gst": 1.2,
      "total_amount_net": 433.08,
      "total_amount_gst": 43.2,
      "notes": "Included"
    },
    "T": {
      "posting_class_id": "100021",
      "amount_net": 0,
      "amount_gst": 0,
      "total_amount_net": 0,
      "total_amount_gst": 0,
      "notes": "Excluded"
    },
    "VMP": {
      "posting_class_id": "100087",
      "amount_net": 7.78,
      "amount_gst": 0.78,
      "total_amount_net": 280.08,
      "total_amount_gst": 28.08,
      "notes": "Included"
    }
  },
  "budgets_financed": 0,
  "cancelled": "0000-00-00 00:00:00",
  "capitalised_interest": 0,
  "carbon_emissions_offset": {
    "included_flag": "yes"
  },
  "claimable_gst": 5521.18,
  "variant_id": "173561",
  "vehicle_maintenance_program": {
    "included_flag": "yes"
  },
  "_links": {
    "self": {
      "href": "https://api.catch-e.com/fm/drivers/101151"
    }
  },
  "quote_links": {
    "self": {
      "href": "https://api.catch-e.com/qt/quotes/132654"
    }
  }
}

The request was a successful request.

Note: … denotes content removed for this example. The full content is hundreds of rows of data not suited to display in this document.

401 - Unathorized

Comments

{
  "type": "http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html",
  "title": "Unauthorized",
  "status": 401,
  "detail": "Unauthorized"
}

You have not authenticated before running this API or The token_timeout of the current session has passed. You need to authenticate again.

403 - Forbidden

Comments

{
  "type": "http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html",
  "title": "Forbidden",
  "status": 403,
  "detail": "Forbidden"
}

You do not have permissions for this request.

Go to System Roles and enter 'web_services' Navigate to the Roles / APIs tab to make sure the permission you need to run this API is checked.

422 - Unprocessable Entity

Comments

{
  "quote_id": {
    "noRecordFound": "No record matching the input was found"
  }
}

Quote ID does not exist. Pass a valid Quote ID.

{
  "client_name": {
    "stringLengthTooLong": "The input is more than 100 characters long"
  }
}

client_name must be 100 characters or less. Pass a shorter name.

{
  "fuel": {
    "usage_type": {
      "notInArray": "Unsupported value"
    },
    "included_flag": {
      "fuelDetailsRequired": "Required fuel details not supplied"
    }
  }
}

Input field "usage_type" is case sensitive and must be one of: metro, country or combined

{
  "vehicle_maintenance_program": {
    "monthly_amount_net": {
      "inputAmountNegative": "Maintenance program budget contains negative values"
    }
  }
}

Negative amount has been input. Note this is a warning. You can override this warning by passing the

{
  "vehicle_maintenance_program": {
    "monthly_amount_net": {
      "notBetween": "The input is not between '-99999999' and '99999999', inclusively"
    }
  }
}

Invalid amount entered and is outside of the allowable range for this field.

{
  "validation_messages": {
    "quote_id": {
      "ericQuoteError": "OccurredAt='2022-09-08T06:10:57.4193528Z', Code='QM11', Description='The amount financed, $166,704.20, exceeds the limit for the cover type: NEWTYWHM12 (Product code: TYW)'\n\nQuotation Number: c709ec9f-1c9a-4cbd-93ba-2d400e9836fa"
    }
  },
  "type": "http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html"
}

"Unprocessable Entity",The amount financed, $####, exceeds the limit for the cover type

 {
  "validation_messages": {
    "client_margin_rate": {
      "clientMarginRateCannotBeNegative": "Client Margin must be 0 or a positive number."
    }
  }
}

Negative Client Margin Rates are rejected based on [gb_controls]client_margin_allow_negative_flag = 'no'.

423 - Locked

Comments

{
  "type": "http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html",
  "title": "Locked",
  "status": 423,
  "detail": {
    "locked_by": {
      "user_id": "10000",
      "user_login": "user_login",
      "full_name": "Full Name of user"
    }
  }
}

The quote is being edited. Try again once the quote is no longer in use. The patchQuote request will attempt to obtain a lock on the Quote ID included in the request. If it cannot obtain a lock immediately, the system will attempt to obtain lock 10 times with a random delay of 500ms to 1000ms in between each attempt. If a lock cannot be obtained, a 423 - Locked error will result.

500

Comments

{
  "type": "http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html",
  "title": "Internal Server Error",
  "status": 500,
  "detail": "Unknown value for gb_control->luxury_charge_depreciation_method. Aborting..."
}

The quote's "Effective Date" is earlier than the of the control shown in the error. Update the of the control to be earlier than any of your quotes.