Skip to main content
POST
/
api
/
v1
/
external
/
companies
/
{companyId}
/
policies
/
transaction
/
renew
Renew Policy Transaction
curl --request POST \
  --url https://app.aiinsurance.io/api/v1/external/companies/{companyId}/policies/transaction/renew \
  --header 'Authorization: <api-key>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "previousPolicyId": "550e8400-e29b-41d4-a716-446655440001",
  "newPolicyStartDate": "2026-01-01",
  "newPolicyEndDate": "2027-01-01",
  "fieldModelV1Data": {
    "policy": {
      "annualPremium": 90000,
      "fullTermPolicyInfo": {
        "policyStatus": "Active",
        "policyStartDate": {
          "year": 2026,
          "month": 1,
          "day": 1,
          "timezone": "America/New_York"
        },
        "policyEndDate": {
          "year": 2027,
          "month": 1,
          "day": 1,
          "timezone": "America/New_York"
        },
        "primaryInsuredId": "550e8400-e29b-41d4-a716-446655440010"
      },
      "fullTermPolicyBilling": {
        "policyPremium": 90000,
        "policyTaxes": 0,
        "policyFees": 500,
        "policyGrandTotal": 90500
      },
      "exposures": [
        {
          "id": "550e8400-e29b-41d4-a716-446655440010",
          "exposureType": "MedicalFacility",
          "bedCount": 120
        }
      ]
    }
  }
}
'
{
  "policyId": "550e8400-e29b-41d4-a716-446655440060",
  "policyVersion": 1,
  "transactionId": "550e8400-e29b-41d4-a716-446655440061",
  "startDate": "2026-01-01",
  "endDate": "2027-01-01",
  "createdAt": "2025-12-15T10:30:00.000Z",
  "fullTermPolicyInfo": {
    "policyStatus": "Active",
    "policyStartDate": {
      "year": 2026,
      "month": 1,
      "day": 1,
      "timezone": "America/New_York"
    },
    "policyEndDate": {
      "year": 2027,
      "month": 1,
      "day": 1,
      "timezone": "America/New_York"
    },
    "primaryInsuredId": "550e8400-e29b-41d4-a716-446655440010"
  },
  "fullTermPolicyBilling": {
    "policyPremium": 90000,
    "policyTaxes": 0,
    "policyFees": 500,
    "policyGrandTotal": 90500
  },
  "segments": [
    {
      "startDate": "2026-01-01",
      "endDate": "2027-01-01",
      "fieldModelV1Data": {
        "policy": {
          "annualPremium": 90000,
          "fullTermPolicyInfo": {
            "policyStatus": "Active",
            "policyStartDate": {
              "year": 2026,
              "month": 1,
              "day": 1,
              "timezone": "America/New_York"
            },
            "policyEndDate": {
              "year": 2027,
              "month": 1,
              "day": 1,
              "timezone": "America/New_York"
            },
            "primaryInsuredId": "550e8400-e29b-41d4-a716-446655440010"
          },
          "fullTermPolicyBilling": {
            "policyPremium": 90000,
            "policyTaxes": 0,
            "policyFees": 500,
            "policyGrandTotal": 90500
          },
          "exposures": [
            {
              "id": "550e8400-e29b-41d4-a716-446655440010",
              "exposureType": "MedicalFacility",
              "bedCount": 120
            }
          ]
        }
      }
    }
  ]
}

Authorizations

Authorization
string
header
required

API key authentication. Include your API key in the Authorization header.

Path Parameters

companyId
string<uuid>
required

Company identifier

Body

application/json
previousPolicyId
string<uuid>
required

The ID of the policy being renewed. Must be an existing policy with at least one transaction. The new policy will be linked to this policy.

newPolicyStartDate
string<date>
required

Renewal term start date in ISO 8601 format. Must be on or after the previous policy's end date. Must be before newPolicyEndDate. The day/month/year must match fullTermPolicyInfo.policyStartDate.

Accepts a plain date (2026-01-01) or a full timestamp with UTC offset (2026-01-01T00:00:00-05:00). Only standard-time (non-DST) offsets are accepted:

TimezoneAccepted offset
America/New_York-05:00 (EST)
America/Los_Angeles-08:00 (PST)

Daylight-saving offsets (-04:00 EDT, -07:00 PDT) are not accepted. These are the only two timezones currently supported.

newPolicyEndDate
string<date>
required

Renewal term end date in ISO 8601 format. Must be after newPolicyStartDate. The day/month/year must match fullTermPolicyInfo.policyEndDate.

Accepts a plain date (2027-01-01) or a full timestamp with UTC offset. Only standard-time offsets are accepted — see newPolicyStartDate for the mapping.

fieldModelV1Data
object
required

Container for renewal policy state. Must contain a policy object with all policy-level fields and optional nested exposures.

transactionTimestamp
string<date-time>

When the business decision was made. Defaults to the current time if omitted. Set explicitly for imports (e.g., aligning to a bordereau booking date).

Response

Renewal policy created successfully

Response returned by policy transaction endpoints. Contains the policy version produced by the transaction, including all derived segments.

policyId
string<uuid>
required

Policy identifier

policyVersion
integer
required

Sequential version number produced by this transaction

transactionId
string<uuid>
required

Identifier of the transaction that produced this version

startDate
string<date>
required

Policy term start date (ISO 8601)

endDate
string<date>
required

Policy term end date (ISO 8601)

createdAt
string<date-time>
required

When the transaction was created (ISO 8601)

segments
object[]
required

Derived segments for this policy version. Each segment represents a maximal contiguous date range where policy state is identical. Adjacent segments with identical data are automatically merged.

fullTermPolicyInfo
object

Full-term policy information. Contains policy status, term dates, and primary insured reference.

fullTermPolicyBilling
object

Full-term billing aggregates. Contains premium, taxes, fees, and grand total for the full policy term.