fieldType in your configuration is one of:
Object: AddressObject: CoverageLimitObject: CurrencyObject: DateObject: QuoteBindError
Required-completeness rule
If a system-object field is provided in a create/update payload, every sub-field listed below is required. Partial values are rejected with HTTP400 and a problem code naming the offending sub-field:
null, undefined, or empty string (""). Numeric 0 and Boolean false are valid values. Whitespace-only strings (e.g. " ") currently slip past this validator — trim sub-field strings client-side before submitting.
Custom objects keep their existing rules. Sub-fields of a custom object follow each sub-field’s own requiredCondition from your configuration; only system objects are strict-by-default.
This rule applies to every FMV1 external write endpoint:
POST/PUTexposures, events, quotesPOSTBasic Policies- All segmented policy transactions (
new-business,endorse,renew) POST/PUTcustom objects (including a system-object sub-field nested inside a custom object)
Address
Structured postal address. Used wherever a property, mailing, or risk location appears in your field model.| Sub-field | Type | Description |
|---|---|---|
street | string | Street number and route (e.g. "350 5th Avenue") |
city | string | City or locality |
state | string | State or first-order administrative region. US: 2-letter postal code |
county | string | County or second-order administrative area |
country | string | Country name |
zipCode | string | Postal / zip code as a string. Leading zeros are preserved (e.g. "02140") |
county, call GET /api/external/companies/{companyId}/resolve-address first to derive a complete address before submitting.
CoverageLimit
A single coverage limit pair: a name and a monetary amount.| Sub-field | Type | Description |
|---|---|---|
coverageLimitName | string | Display name (e.g. "Per Occurrence", "Aggregate") |
coverageLimitAmount | number | Limit value in the policy’s currency. 0 is valid (e.g. excluded peril) |
Currency
A monetary value with its currency code.| Sub-field | Type | Description |
|---|---|---|
value | number | Numeric amount. 0 is a valid value |
code | string | ISO 4217 currency code (e.g. "USD", "GBP", "EUR"). Empty strings are rejected |
Date
A calendar date with an explicit timezone. The API accepts two input shapes and stores both in the canonical DMY form.| Sub-field | Type | Description |
|---|---|---|
day | integer | Day of month, 1-based (1–31) |
month | integer | Month, 1-based (1=January, 12=December) |
year | integer | Four-digit calendar year |
timezone | string | IANA timezone identifier (e.g. "America/New_York", "UTC") |
timezone is required in both shapes. Responses always use the DMY form.
QuoteBindError
A single bind-time error surfaced on a quote that failed to bind. The bind endpoint populatesquoteBindErrors (an Object List of these) on the quote when bind fails; you generally do not write this directly.
| Sub-field | Type | Description |
|---|---|---|
message | string | Human-readable description of the bind failure |
Cardinality
Any of these system objects can appear as a single value or as a list, depending on how the field is configured. List-cardinality fields enforce the same required-completeness rule per array element — each item must be a complete system object.Related
- Address resolution endpoint — derive a complete
Address(includingcounty) from a freeform input string. - V1 API Changelog — the strict-validation rule was rolled out on 2026-04-28.
