Guidewire ClaimCenter API

The Guidewire ClaimCenter API provides REST endpoints for claims intake, assignment, investigation, reserving, payment processing, and closure workflows for P&C insurance claim operations.

OpenAPI Specification

guidewire-claimcenter-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Guidewire ClaimCenter API
  description: >-
    Guidewire ClaimCenter REST API for P&C insurance claims management. Provides
    endpoints for first notice of loss (FNOL), claims assignment, investigation,
    coverage verification, reserving, payment processing, and claims closure.
  version: 1.0.0
  contact:
    name: Guidewire Developer Support
    url: https://community.guidewire.com/
  license:
    name: Guidewire License
    url: https://www.guidewire.com/
externalDocs:
  description: Guidewire ClaimCenter Documentation
  url: https://docs.guidewire.com/

servers:
  - url: https://{tenant}.guidewire.com/cc/rest/v1
    variables:
      tenant:
        default: yourcompany
        description: Your Guidewire Cloud tenant identifier

security:
  - OAuth2: []

tags:
  - name: Claims
    description: Claims lifecycle management
  - name: Exposures
    description: Claim exposure management
  - name: FNOL
    description: First Notice of Loss intake
  - name: Payments
    description: Claim payment and reserves

paths:
  /claims:
    get:
      operationId: listClaims
      summary: List claims
      description: Returns paginated list of claims with optional filtering by status, policy number, loss date range, and assigned adjuster.
      tags: [Claims]
      parameters:
        - name: status
          in: query
          schema:
            type: string
            enum: [Open, Closed, Reopened]
        - name: policyNumber
          in: query
          schema:
            type: string
        - name: claimNumber
          in: query
          schema:
            type: string
        - name: lossDateFrom
          in: query
          schema:
            type: string
            format: date
        - name: lossDateTo
          in: query
          schema:
            type: string
            format: date
        - name: pageSize
          in: query
          schema:
            type: integer
            default: 25
            maximum: 100
        - name: pageNumber
          in: query
          schema:
            type: integer
            default: 1
      responses:
        '200':
          description: Claims list returned
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClaimList'

  /claims/{claimId}:
    get:
      operationId: getClaim
      summary: Get claim details
      description: Returns complete claim details including loss information, coverages, exposures, reserves, and payment history.
      tags: [Claims]
      parameters:
        - name: claimId
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Claim returned
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Claim'
        '404':
          description: Claim not found

  /fnol:
    post:
      operationId: createFnol
      summary: Submit First Notice of Loss
      description: Creates a new claim from first notice of loss data. Initiates coverage verification, assignment, and claims workflow in ClaimCenter.
      tags: [FNOL]
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FnolRequest'
      responses:
        '201':
          description: Claim created from FNOL
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Claim'
        '400':
          description: Invalid FNOL data
        '404':
          description: Policy not found

  /claims/{claimId}/exposures:
    get:
      operationId: listExposures
      summary: List claim exposures
      description: Returns all exposures (coverage lines being investigated) for a claim.
      tags: [Exposures]
      parameters:
        - name: claimId
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Exposures returned
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExposureList'

  /claims/{claimId}/payments:
    get:
      operationId: listClaimPayments
      summary: List claim payments
      description: Returns all payments (checks, EFTs) associated with a claim including status and payment details.
      tags: [Payments]
      parameters:
        - name: claimId
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Payments returned
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClaimPaymentList'

    post:
      operationId: createClaimPayment
      summary: Create claim payment
      description: Creates a new claim payment (check or EFT) for a specified payee and exposure.
      tags: [Payments]
      parameters:
        - name: claimId
          in: path
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ClaimPaymentRequest'
      responses:
        '201':
          description: Payment created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClaimPayment'
        '400':
          description: Invalid payment request
        '422':
          description: Reserve insufficient

components:
  securitySchemes:
    OAuth2:
      type: oauth2
      flows:
        authorizationCode:
          authorizationUrl: https://login.guidewire.com/oauth/authorize
          tokenUrl: https://login.guidewire.com/oauth/token
          scopes:
            cc.claims.read: Read claim data
            cc.claims.write: Create and update claims
            cc.payments.write: Create claim payments

  schemas:
    Claim:
      type: object
      properties:
        id:
          type: string
        claimNumber:
          type: string
        status:
          type: string
          enum: [Open, Closed, Reopened]
        lossType:
          type: string
          description: Type of loss (e.g., "AUTO", "PROPERTY", "LIABILITY")
        lossDate:
          type: string
          format: date
        lossDescription:
          type: string
        reportedDate:
          type: string
          format: date-time
        policyNumber:
          type: string
        insured:
          type: object
          properties:
            id:
              type: string
            displayName:
              type: string
        assignedAdjuster:
          type: object
          properties:
            id:
              type: string
            displayName:
              type: string
        totalIncurred:
          type: number
          format: double
          description: Total incurred losses (reserves + paid)
        totalPaid:
          type: number
          format: double
        exposures:
          type: array
          items:
            $ref: '#/components/schemas/Exposure'
        createdDate:
          type: string
          format: date-time
        closedDate:
          type: string
          format: date

    ClaimList:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/Claim'
        total:
          type: integer
        pageNumber:
          type: integer
        pageSize:
          type: integer

    FnolRequest:
      type: object
      required: [policyNumber, lossDate, lossType]
      properties:
        policyNumber:
          type: string
        lossDate:
          type: string
          format: date
        lossTime:
          type: string
          format: time
        lossType:
          type: string
          description: Loss type code
        lossDescription:
          type: string
          maxLength: 4000
        lossLocation:
          type: object
          properties:
            addressLine1:
              type: string
            city:
              type: string
            state:
              type: string
            postalCode:
              type: string
            country:
              type: string
        reporter:
          type: object
          properties:
            firstName:
              type: string
            lastName:
              type: string
            phone:
              type: string
            email:
              type: string
              format: email
            relationship:
              type: string

    Exposure:
      type: object
      properties:
        id:
          type: string
        coverageType:
          type: string
        claimant:
          type: object
          properties:
            id:
              type: string
            displayName:
              type: string
        status:
          type: string
          enum: [Open, Closed]
        reserve:
          type: number
          format: double
        paid:
          type: number
          format: double
        incurred:
          type: number
          format: double

    ExposureList:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/Exposure'

    ClaimPayment:
      type: object
      properties:
        id:
          type: string
        claimId:
          type: string
        paymentNumber:
          type: string
        status:
          type: string
          enum: [Requested, Approved, Issued, Voided, Stopped]
        amount:
          type: number
          format: double
        currency:
          type: string
          default: USD
        paymentType:
          type: string
          enum: [Check, EFT, Wire]
        payee:
          type: object
          properties:
            id:
              type: string
            displayName:
              type: string
        memo:
          type: string
        issueDate:
          type: string
          format: date
        createdDate:
          type: string
          format: date-time

    ClaimPaymentRequest:
      type: object
      required: [exposureId, amount, payeeId, paymentType]
      properties:
        exposureId:
          type: string
        amount:
          type: number
          format: double
          minimum: 0.01
        payeeId:
          type: string
        paymentType:
          type: string
          enum: [Check, EFT]
        memo:
          type: string
          maxLength: 255

    ClaimPaymentList:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/ClaimPayment'
        total:
          type: integer