Fat Agent Standard / Insurance
v1.0Contracting
Represents the standardized transaction and data required to establish, change, renew, or terminate a producer or agency's contractual relationship and selling authority with an insurance carrier.
One Contracting object is one contracting case. It identifies who is seeking authority with which Carrier, what was requested, and what the Carrier decided. It does not submit contracts, run e-signature, or calculate commissions.
Identity
contracting_id, contracting_type, and status are required. One Producer / Agency MAY have multiple Contracting records over time or with different carriers. Dates MUST use YYYY-MM-DD.
| Field | Type | Required | Description |
|---|---|---|---|
contracting_id | string | Yes | Unique Fat Agent Standard identifier for the contracting transaction |
contracting_type | enum | Yes | Kind of contracting transaction Allowed: new_contract, additional_appointment, additional_line, additional_product, hierarchy_change, compensation_change, reactivation, renewal, termination, other |
contracting_type_description | string | Yes* | Custom value when contracting_type is other. Required when contracting_type is other. MUST NOT be set otherwise. |
status | enum | Yes | Current contracting case status Allowed: draft, in_progress, ready_to_submit, submitted, received, under_review, requirements_outstanding, approved, approved_with_conditions, declined, withdrawn, completed, terminated, other |
status_description | string | Yes* | Custom value when status is other. Required when status is other. MUST NOT be set otherwise. |
created_date | string (date) | No | Date the contracting case was created |
submitted_date | string (date) | No | Date the contracting case was submitted |
completed_date | string (date) | No | Date the contracting case was completed |
Parties
producer_agency_id and carrier_id are required. Do not embed Producer / Agency or Carrier. submitting_organization_id is the organization facilitating the case. It is not necessarily the producer being contracted.
| Field | Type | Required | Description |
|---|---|---|---|
| producer_agency_id | string | Yes | Producer / Agency being contracted |
| carrier_id | string | Yes | Carrier with which authority is being requested |
| submitting_organization_id | string | No | Organization submitting or facilitating the case |
Requested Authority
Requested Authority describes what the Producer / Agency is asking the Carrier to authorize. Jurisdictions do not prove licensing or appointment. product_ids allow contracting at a specific Product level when the carrier uses that model.
| Field | Type | Required | Description |
|---|---|---|---|
jurisdictions | array[string] | No | Requested jurisdictions. U.S. states SHOULD use ISO 3166-2 such as US-OH. |
lines_of_business | array[enum] | No | Requested Fat Agent Standard lines Allowed: life, annuity, long_term_care, disability, personal_auto, property, personal_umbrella, commercial, other |
line_of_business_description | string | Yes* | Custom value when lines_of_business contains other. Required when lines_of_business contains other. MUST NOT be set otherwise. |
product_ids | array[string] | No | Optional Product identifiers when contracting is product-specific |
Hierarchy
Hierarchy identifies where the producer sits for this case. hierarchy_level is a string because carrier naming varies. Hierarchy does not define commission percentages or override mathematics.
| Field | Type | Required | Description |
|---|---|---|---|
| upline_producer_agency_id | string | No | Immediate upline Producer / Agency for this case |
hierarchy_level | string | No | Carrier or distribution hierarchy level |
carrier_hierarchy_code | string | No | Optional carrier-assigned hierarchy identifier |
Compensation
Compensation identifies the requested or agreed arrangement. It does not calculate commissions. Rates, schedules, advances, chargebacks, overrides, vesting, and payment calculations are outside Contracting v1.0.
| Field | Type | Required | Description |
|---|---|---|---|
compensation_level | string | No | Carrier or distribution compensation level identifier |
commission_schedule_id | string | No | Optional reference to a commission schedule maintained outside this object |
assignment_type | enum | No | How compensation is assigned Allowed: direct, assigned, split, other |
assignment_type_description | string | Yes* | Custom value when assignment_type is other. Required when assignment_type is other. MUST NOT be set otherwise. |
Requirements
requirements[] are items needed to complete the case. document_id MAY reference Document / Evidence when a document satisfies the requirement.
| Field | Type | Required | Description |
|---|---|---|---|
requirement_id | string | Yes* | Unique requirement identifier |
requirement_type | enum | Yes* | Kind of requirement Allowed: producer_information, agency_information, license_verification, appointment_request, background_check, aml_training, product_training, state_training, e_and_o, w9, eft_banking, voided_check, business_entity_documents, ownership_information, hierarchy_approval, commission_assignment, carrier_agreement, disclosure, signature, document, other |
requirement_type_description | string | Yes* | Custom value when requirement_type is other. Required when requirement_type is other. MUST NOT be set otherwise. |
status | enum | Yes* | Requirement status Allowed: required, requested, pending, received, reviewed, accepted, rejected, waived, not_applicable, other |
status_description | string | Yes* | Custom value when status is other. Required when status is other. MUST NOT be set otherwise. |
requested_date | string (date) | No | Date the requirement was requested |
received_date | string (date) | No | Date the requirement was received |
reviewed_date | string (date) | No | Date the requirement was reviewed |
document_id | string | No | Document or evidence that satisfies the requirement |
notes | string | No | Optional notes |
Compliance
Compliance summarizes major contracting compliance items. It does not replace licenses, training certificates, requirements, or the carrier decision.
| Field | Type | Required | Description |
|---|---|---|---|
background_check_status | enum | No | Status of required background review Allowed: not_required, not_started, pending, current, expired, failed, waived, other |
background_check_status_description | string | Yes* | Custom value when background_check_status is other. Required when background_check_status is other. MUST NOT be set otherwise. |
aml_status | enum | No | Anti-Money Laundering training or compliance status Allowed: not_required, not_started, pending, current, expired, failed, waived, other |
aml_status_description | string | Yes* | Custom value when aml_status is other. Required when aml_status is other. MUST NOT be set otherwise. |
e_and_o_status | enum | No | Errors and Omissions insurance requirement status Allowed: not_required, not_started, pending, current, expired, failed, waived, other |
e_and_o_status_description | string | Yes* | Custom value when e_and_o_status is other. Required when e_and_o_status is other. MUST NOT be set otherwise. |
training_status | enum | No | Overall required training status Allowed: not_required, not_started, pending, current, expired, failed, waived, other |
training_status_description | string | Yes* | Custom value when training_status is other. Required when training_status is other. MUST NOT be set otherwise. |
suitability_status | enum | No | Suitability-related qualification status Allowed: not_required, not_started, pending, current, expired, failed, waived, other |
suitability_status_description | string | Yes* | Custom value when suitability_status is other. Required when suitability_status is other. MUST NOT be set otherwise. |
Agreements
agreements[] record agreement or signature state. The Standard does not perform e-signature.
| Field | Type | Required | Description |
|---|---|---|---|
agreement_id | string | Yes* | Unique agreement identifier |
agreement_type | enum | Yes* | Kind of agreement Allowed: producer_agreement, agency_agreement, carrier_contract, commission_agreement, assignment_agreement, privacy_agreement, business_associate_agreement, disclosure, other |
agreement_type_description | string | Yes* | Custom value when agreement_type is other. Required when agreement_type is other. MUST NOT be set otherwise. |
document_id | string | No | Document containing the agreement |
signature_status | enum | Yes* | Signature state Allowed: not_required, not_sent, sent, viewed, signed, declined, expired, other |
signature_status_description | string | Yes* | Custom value when signature_status is other. Required when signature_status is other. MUST NOT be set otherwise. |
signed_date | string (date) | No | Date the agreement was signed |
Carrier Decision
carrier_decision records the Carrier's decision. reason_codes are carrier or system strings. producer_code and agency_code MAY later update Producer / Agency appointments.
| Field | Type | Required | Description |
|---|---|---|---|
decision | enum | Yes* | Carrier decision on the contracting request Allowed: pending, approved, approved_with_conditions, declined, withdrawn, terminated, other |
decision_description | string | Yes* | Custom value when decision is other. Required when decision is other. MUST NOT be set otherwise. |
decision_date | string (date) | No | Date of the decision |
effective_date | string (date) | No | Date the decision becomes effective |
reason_codes | array[string] | No | Carrier or system reason codes |
producer_code | string | No | Carrier-assigned producer identifier resulting from contracting |
agency_code | string | No | Carrier-assigned agency identifier resulting from contracting |
notes | string | No | Optional decision notes |
Appointments
appointments[] are jurisdictional appointment results for this case. Producer / Agency stores the reusable current appointment relationship. Systems are not required to synchronize automatically.
| Field | Type | Required | Description |
|---|---|---|---|
appointment_id | string | Yes* | Unique appointment result identifier |
jurisdiction | string | Yes* | Appointment jurisdiction. Use ISO 3166-2 such as US-OH when applicable. |
status | enum | Yes* | Appointment result status Allowed: pending, active, inactive, terminated, not_required, declined, other |
status_description | string | Yes* | Custom value when status is other. Required when status is other. MUST NOT be set otherwise. |
appointment_date | string (date) | No | Date the appointment became effective |
termination_date | string (date) | No | Date the appointment terminated |
lines_of_business | array[enum] | No | Fat Agent Standard lines on the appointment result Allowed: life, annuity, long_term_care, disability, personal_auto, property, personal_umbrella, commercial, other |
line_of_business_description | string | Yes* | Custom value when lines_of_business contains other. Required when lines_of_business contains other. MUST NOT be set otherwise. |
External References
external_references preserve case or transaction IDs from carrier platforms, e-sign, licensing providers, and Fat Agent workflow. They MUST NOT contain proprietary integration logic.
| Field | Type | Required | Description |
|---|---|---|---|
system | string | Yes* | External system |
reference_id | string | Yes* | Identifier assigned by that system |
reference_type | string | No | Type of reference |
Contracting Types
contracting_type describes the kind of authority or relationship change being requested.
| Line of Business | Allowed product_type |
|---|---|
new_contract | Establish a new producer/agency relationship with a Carrier |
additional_appointment | Request additional jurisdictional appointment or authority |
additional_line | Add a line of business |
additional_product | Add authority for a specific Product |
hierarchy_change | Change upline or distribution hierarchy |
compensation_change | Change the applicable compensation level or schedule |
reactivation | Restore a previously inactive or terminated relationship |
renewal | Renew a contractual relationship when the carrier requires renewal |
termination | End the contractual relationship or authority |
other | Requires contracting_type_description |
Lines of Business
Requested and appointment lines use Fat Agent Standard product lines. Health insurance and group insurance are outside Fat Agent Standard v1.0.
| Line of Business | Allowed product_type |
|---|---|
life | life |
annuity | annuity |
long_term_care | long_term_care |
disability | disability |
personal_auto | personal_auto |
property | property |
personal_umbrella | personal_umbrella |
commercial | commercial |
other | other |
Validation Rules
- contracting_id, contracting_type, status, producer_agency_id, and carrier_id MUST be supplied.
- When an enum value is other, the companion {field}_description field is required and MUST be a non-empty string. That companion field MUST NOT be set unless the enum value is other.
- One Contracting object represents one contracting transaction or case.
- A Producer / Agency MAY have multiple Contracting records with the same Carrier over time.
- Contracting references Producer / Agency and Carrier rather than duplicating those objects.
- Requested jurisdictions describe the authority being requested. They do not prove licensing or appointment.
- Requested lines and products describe requested selling authority. Product definitions remain separate.
- Hierarchy identifies distribution relationships for the contracting transaction.
- Compensation fields identify the applicable or requested arrangement but do not calculate commissions.
- Commission rates, schedules, advances, chargebacks, overrides, vesting, and payment calculations are outside Contracting v1.0.
- Requirements MAY reference Document / Evidence.
- Compliance statuses summarize major contracting compliance items and do not replace source evidence.
- Agreements record agreement or signature state. The Standard does not perform e-signature.
- Carrier Decision records the Carrier's contracting decision.
- Appointment results MAY be used to populate or update reusable appointment data in Producer / Agency.
- Carrier producer and agency codes returned through contracting MAY be reused in Producer / Agency carrier appointments.
- External references preserve external case or transaction identifiers without embedding proprietary integration logic.
- Proprietary carrier API mappings, credentials, automation, routing, and submission logic remain outside the Standard.
- Health insurance remains outside Fat Agent Standard v1.0 product scope.
- Dates MUST use ISO 8601 date format (YYYY-MM-DD).
