# Create policy

Creates a new policy. Required: clientId, effectiveDate, expirationDate, and either coverageType or fullCoverageTypeName. Name-based fields (insurerName, stateName, producerName, etc.) are resolved to IDs via master data lookup. The token must be authorized for the specified clientId.

Endpoint: POST /v1/policies
Version: 1.0.0
Security: BearerAuth, ApiKeyAuth

## Request fields (application/json):

  - `clientId` (integer, required)
    Client identifier.
    Example: 1

  - `effectiveDate` (string, required)
    Policy effective date (cannot be more than 1 year in the past).
    Example: 2024-01-01T00:00:00Z

  - `expirationDate` (string, required)
    Policy expiration date (must be after effectiveDate).
    Example: 2025-01-01T00:00:00Z

  - `coverageType` (string | null)
    Coverage type code: PD, NT, OA, PA, CG, AL, GL, WC, TI, DD, VD. Use either this or fullCoverageTypeName.
    Example: AL

  - `fullCoverageTypeName` (string | null)
    Full coverage type name for lookup (e.g. 'Physical Damage', 'Auto Liability'). Alternative to coverageType.

  - `policyNumber` (string | null)
    Policy number (auto-generated if not provided).

  - `policyType` (integer | null)
    Policy type ID: 1 (ScheduledUnits), 2 (AllUnits), 3 (ScheduledDrivers), 4 (AllDrivers), 5 (AllPowerUnits).

  - `policyTypeName` (string | null)
    Policy type name for lookup. Alternative to policyType.

  - `insurerId` (integer | null)
    Insurer ID. Use either insurerId, insurerName, or insurerNAICNumber.

  - `insurerName` (string | null)
    Insurer name for lookup.

  - `insurerNAICNumber` (string | null)
    Insurer NAIC number for lookup.

  - `contractId` (integer | null)
    Contract ID. Use either contractId or contractNo.

  - `contractNo` (string | null)
    Contract number for lookup.

  - `producerName` (string | null)
    Producer (agent) name for lookup.

  - `csrName` (string | null)
    CSR name for lookup.

  - `stateId` (integer | null)
    State ID. Use either stateId or stateName.

  - `stateName` (string | null)
    State name or code for lookup.
    Example: Texas

  - `description` (string | null)
    Policy description.

  - `annualRate` (number | null)
    Annual rate for power units (non-negative).

  - `monthlyRate` (number | null)
    Monthly rate for power units (non-negative).

  - `nonPowerAnnualRate` (number | null)
    Annual rate for non-power units.

  - `nonPowerMonthlyRate` (number | null)
    Monthly rate for non-power units.

  - `taxRate` (number | null)
    Tax rate percentage.

  - `estimatedPremium` (number | null)
    Estimated premium.

  - `unitLimit` (integer | null)
    Unit limit (non-negative).

  - `policyLimit` (integer | null)
    Policy limit (non-negative).

  - `deductibleAmount` (integer | null)
    Deductible amount.

  - `eachOccurrence` (integer | null)
    Each occurrence limit.

  - `generalAggregate` (integer | null)
    General aggregate limit.

  - `personalAdvInjury` (integer | null)
    Personal & advertising injury limit.

  - `productComOpAgg` (integer | null)
    Products/completed operations aggregate.

  - `damageRentedPermises` (integer | null)
    Damage to rented premises limit.

  - `medExp` (integer | null)
    Medical expense limit.

  - `towingLimit` (number | null)
    Towing limit.

  - `limitPerVehicle` (integer | null)
    Limit per vehicle.

  - `eachAccidentLimit` (integer | null)
    Each accident limit (Workers Comp).

  - `diseaseEmployeeLimit` (integer | null)
    Disease employee limit (Workers Comp).

  - `diseasePolicyLimit` (integer | null)
    Disease policy limit (Workers Comp).

  - `billingCode` (integer | null)
    Billing code: 1 (DirectBill), 2 (MonthlyReporting), 3 (AnnuallyBilled), 4 (Quarterly), 5 (Others), 6 (Installments).

  - `billingCodeName` (string | null)
    Billing code name for lookup.

  - `billingType` (integer | null)
    Billing type: 1 (Working), 2 (Arrears).

  - `billingTypeName` (string | null)
    Billing type name for lookup.

  - `billingPayee` (integer | null)
    Billing payee identifier.

  - `billingSource` (integer | null)
    Billing source identifier.

  - `billingSourceName` (string | null)
    Billing source name for lookup.

  - `billingRateType` (integer | null)
    Billing rate type: 16 (PerPowerUnit), 17 (PerMiles), 18 (PerRevenue), 19 (PerUnit).

  - `billingRateTypeName` (string | null)
    Billing rate type name for lookup.

  - `installments` (integer | null)
    Number of installments.

  - `depositPercentage` (number | null)
    Deposit percentage.

  - `separateRateByPowerUnit` (boolean | null)
    Separate rate by power unit type.

  - `proRata` (boolean | null)
    Pro rata billing.

  - `minimumPremium` (number | null)
    Minimum premium amount.

  - `minimumPremiumPercent` (number | null)
    Minimum premium percentage.

  - `anyAuto` (boolean | null)
    Any auto coverage.

  - `ownedAutosOnly` (boolean | null)
    Owned autos only coverage.

  - `hiredAutosOnly` (boolean | null)
    Hired autos only coverage.

  - `nonOwnedAutosOnly` (boolean | null)
    Non-owned autos only coverage.

  - `scheduledAutos` (boolean | null)
    Scheduled autos coverage.

  - `policyOptionId` (integer | null)
    Policy option: 1 (ClaimsMade), 2 (Occurrence), 3 (Other).

  - `generalAggregateLimitId` (integer | null)
    General aggregate limit: 1 (Policy), 2 (Project), 3 (Location).

  - `isCLIncluded` (boolean | null)
    CL (Contingent Liability) included.

  - `isAdmitted` (boolean | null)
    Admitted policy.

  - `isAdditionalInsured` (boolean | null)
    Additional insured.

  - `isWaiver` (boolean | null)
    Waiver.

  - `isParentPolicy` (boolean | null)
    Parent policy.

  - `cumulative` (boolean | null)
    Cumulative policy.

  - `parentPolicyId` (integer | null)
    Parent policy ID for child policies.

  - `reportDay` (integer | null)
    Report day of month.

  - `generatedDay` (integer | null)
    Generated day of month.

  - `renewalDate` (string | null)
    Renewal date.

  - `policyAdditionalDetails` (object | null)
    Policy additional details.

