ACORD Underwriting API

Underwriting and risk assessment

OpenAPI Specification

acord-underwriting-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: ACORD Next-Generation Digital Standards (NGDS) Claims Underwriting API
  description: The ACORD NGDS API provides granular, transaction-centric REST/JSON standards for insurance data exchange covering underwriting, policy management, and claims administration. Based on the ACORD Object Model with JSON and YAML formats for microservices, IoT, and modern API architectures.
  version: 1.0.0
  contact:
    name: ACORD Standards
    url: https://www.acord.org/standards-architecture/acord-data-standards
  license:
    name: ACORD License
    url: https://www.acord.org
servers:
- url: https://api.insurer-internal.example.com/ngds
  description: NGDS REST API endpoint
security:
- oauth2: []
- bearerAuth: []
tags:
- name: Underwriting
  description: Underwriting and risk assessment
paths:
  /underwriting/submissions:
    post:
      operationId: submitUnderwritingSubmission
      summary: ACORD Submit Underwriting Application
      description: Submit an insurance application for underwriting review using ACORD NGDS underwriting transaction.
      tags:
      - Underwriting
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UnderwritingSubmission'
            examples:
              SubmitUnderwritingSubmissionRequestExample:
                summary: Default submitUnderwritingSubmission request
                x-microcks-default: true
                value:
                  lineOfBusiness: sample-value
                  applicant:
                    partyType: {}
                    firstName: {}
                    lastName: {}
                    organizationName: {}
                    taxId: {}
                    address: {}
                    contacts: {}
                  requestedEffectiveDate: '2025-03-15'
                  requestedExpirationDate: '2025-03-15'
                  riskDetails: {}
      responses:
        '201':
          description: Submission created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnderwritingSubmissionResponse'
              examples:
                SubmitUnderwritingSubmission201Example:
                  summary: Default submitUnderwritingSubmission 201 response
                  x-microcks-default: true
                  value:
                    submissionId: sample-value
                    status: Received
                    submittedAt: '2025-03-15T14:30:00Z'
                    notes: sample-value
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
components:
  schemas:
    UnderwritingSubmissionResponse:
      type: object
      properties:
        submissionId:
          type: string
        status:
          type: string
          enum:
          - Received
          - UnderReview
          - Approved
          - Declined
          - RequiresMoreInfo
        submittedAt:
          type: string
          format: date-time
        notes:
          type: string
    Address:
      type: object
      properties:
        street1:
          type: string
        street2:
          type: string
        city:
          type: string
        state:
          type: string
        postalCode:
          type: string
        country:
          type: string
          default: US
    Contact:
      type: object
      properties:
        contactType:
          type: string
          enum:
          - Phone
          - Email
          - Fax
        value:
          type: string
    PartyRequest:
      type: object
      required:
      - partyType
      properties:
        partyType:
          type: string
          enum:
          - Insured
          - Claimant
          - Agent
          - Broker
          - Carrier
        firstName:
          type: string
        lastName:
          type: string
        organizationName:
          type: string
        taxId:
          type: string
        address:
          $ref: '#/components/schemas/Address'
        contacts:
          type: array
          items:
            $ref: '#/components/schemas/Contact'
    UnderwritingSubmission:
      type: object
      required:
      - lineOfBusiness
      - applicant
      - requestedEffectiveDate
      properties:
        lineOfBusiness:
          type: string
        applicant:
          $ref: '#/components/schemas/PartyRequest'
        requestedEffectiveDate:
          type: string
          format: date
        requestedExpirationDate:
          type: string
          format: date
        riskDetails:
          type: object
          additionalProperties: true
  securitySchemes:
    oauth2:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: https://auth.insurer-internal.example.com/oauth/token
          scopes:
            read:policies: Read policy data
            write:policies: Create and modify policies
            read:claims: Read claim data
            write:claims: Submit and update claims
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT