> ## Documentation Index
> Fetch the complete documentation index at: https://docs.orderprotection.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Create Offline Claim

> Create a claim for an in-store or offline purchase (e.g., warranty claims)

Warranty claims for orders that were made through an alternative sales channel not through your online store.


## OpenAPI

````yaml openapi-claims POST /v1/claims/offline
openapi: 3.0.0
info:
  title: OrderProtection Claims API
  description: Claims service API
  version: 1.0.0
  contact: {}
servers:
  - url: https://api.production.orderprotection.com
    description: Production server
security: []
tags: []
paths:
  /v1/claims/offline:
    post:
      tags:
        - Claims
      summary: Create Offline Claim
      description: >-
        Create a claim for an in-store or offline purchase (e.g., warranty
        claims)
      operationId: ClaimsApiController_createOfflineClaim
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiCreateOfflineClaimDto'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateOfflineClaimResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedExceptionResponse'
        '404':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundExceptionResponse'
      security:
        - bearer: []
components:
  schemas:
    ApiCreateOfflineClaimDto:
      type: object
      properties:
        claimFiledFrom:
          type: string
          enum:
            - EXTERNAL
            - INTERNAL
          default: EXTERNAL
          description: Indicates where the claim was filed from
          example: EXTERNAL
        customer:
          $ref: '#/components/schemas/ApiOfflineClaimCustomerDto'
        items:
          type: array
          minItems: 1
          items:
            $ref: '#/components/schemas/ApiOfflineClaimItemDto'
        warranty:
          $ref: '#/components/schemas/ApiOfflineClaimWarrantyDto'
        shippingAddress:
          $ref: '#/components/schemas/ApiOfflineClaimAddressDto'
        storeId:
          type: string
          description: The store identifier
          example: store_123
        signature:
          type: string
          format: uri
          description: Customer signature image URL (can be empty string)
          example: https://example.com/signature.png
        salesChannel:
          type: string
          enum:
            - ONLINE
            - IN_STORE
          description: The sales channel for the claim
          example: IN_STORE
        claimCategory:
          type: string
          enum:
            - SHIPPING
            - WARRANTY
          description: The category of the claim
          example: WARRANTY
        issueType:
          type: string
          enum:
            - STOLEN
            - DAMAGED
            - ORDER_DELIVERED_NOT_RECEIVED
            - DEFECTIVE_ITEM
            - WRONG_ITEM
            - MISSING_ITEM
            - RETURNED_TO_SENDER
            - MULTIPLE
            - TRACKING_NOT_MOVING
            - WRONG_ADDRESS
          description: The type of issue being claimed
          example: DEFECTIVE_ITEM
        resolution:
          type: string
          enum:
            - RESHIP
            - REFUND
            - STORE_CREDIT
          description: The requested resolution method
          example: REFUND
        options:
          type: object
          description: Additional options for claim creation
          properties:
            fromValet:
              type: boolean
              default: false
              description: Whether the claim is from Valet
              example: false
            requireCustomerSignature:
              type: boolean
              default: false
              description: Whether customer signature is required
              example: false
      required:
        - customer
        - items
        - warranty
        - shippingAddress
        - storeId
        - signature
        - salesChannel
        - claimCategory
        - issueType
        - resolution
    CreateOfflineClaimResponse:
      type: object
      properties:
        status:
          type: string
          readOnly: true
          example: ok
        payload:
          type: object
          readOnly: true
          properties:
            sourceOrderId:
              type: string
              example: XX-1234-1234
            customer:
              $ref: '#/components/schemas/ApiOfflineClaimCustomerDto'
            item:
              $ref: '#/components/schemas/ApiOfflineClaimItemDto'
            warranty:
              $ref: '#/components/schemas/ApiOfflineClaimWarrantyDto'
            shippingAddress:
              $ref: '#/components/schemas/ApiOfflineClaimAddressDto'
            storeId:
              type: string
              example: store_123
            signature:
              type: string
              format: uri
              example: https://example.com/signature.png
            salesChannel:
              type: string
              enum:
                - ONLINE
                - IN_STORE
              example: IN_STORE
            claimCategory:
              type: string
              enum:
                - SHIPPING
                - WARRANTY
              example: WARRANTY
            issueType:
              type: string
              enum:
                - STOLEN
                - DAMAGED
                - ORDER_DELIVERED_NOT_RECEIVED
                - DEFECTIVE_ITEM
                - WRONG_ITEM
                - MISSING_ITEM
                - RETURNED_TO_SENDER
                - MULTIPLE
                - TRACKING_NOT_MOVING
                - WRONG_ADDRESS
              example: DEFECTIVE_ITEM
            resolution:
              type: string
              enum:
                - RESHIP
                - REFUND
                - STORE_CREDIT
              example: REFUND
          required:
            - sourceOrderId
            - customer
            - item
            - warranty
            - shippingAddress
            - storeId
            - signature
            - salesChannel
            - claimCategory
            - issueType
            - resolution
      required:
        - status
        - payload
    UnauthorizedExceptionResponse:
      type: object
      properties:
        message:
          type: string
          readOnly: true
          example: Unauthorized
        statusCode:
          type: number
          readOnly: true
          example: 401
      required:
        - message
        - statusCode
    NotFoundExceptionResponse:
      type: object
      properties:
        message:
          type: string
          readOnly: true
          example: order not found
        statusCode:
          type: number
          readOnly: true
          example: 404
      required:
        - message
        - error
        - statusCode
    ApiOfflineClaimCustomerDto:
      type: object
      properties:
        email:
          type: string
          format: email
          example: customer@example.com
        phoneNumber:
          type: string
          nullable: true
          example: '+1234567890'
      required:
        - email
    ApiOfflineClaimItemDto:
      type: object
      properties:
        sourceProductId:
          type: string
          nullable: true
          example: product_123
        sourceVariantId:
          type: string
          nullable: true
          example: variant_123
        sourceItemId:
          type: string
          nullable: true
          example: item_123
        name:
          type: string
          example: Product Name
        sku:
          type: string
          nullable: true
          example: SKU-12345
        details:
          type: string
          nullable: true
          example: Product details and description of the issue
        images:
          type: array
          items:
            type: string
            format: uri
          example:
            - https://example.com/image1.jpg
            - https://example.com/image2.jpg
        productImage:
          type: string
          nullable: true
          example: https://example.com/product.jpg
        price:
          type: number
          nullable: true
          example: 99.99
        subIssueId:
          type: string
          nullable: true
          example: sub_issue_123
        productDescription:
          type: string
          nullable: true
          example: Description of the product and its condition
        warrantyPeriod:
          type: string
          nullable: true
          description: >-
            Warranty period in ISO 8601 duration format (e.g., P1Y for 1 year,
            P6M for 6 months, P30D for 30 days)
          example: P1Y
      required:
        - sourceProductId
        - sourceVariantId
        - name
        - images
    ApiOfflineClaimWarrantyDto:
      type: object
      properties:
        dateOfPurchase:
          type: string
          format: date-time
          example: '2024-01-15T00:00:00.000Z'
        receiptRequired:
          type: boolean
          example: true
        receiptImages:
          type: array
          items:
            type: string
            format: uri
          example:
            - https://example.com/receipt.jpg
      required:
        - dateOfPurchase
        - receiptRequired
        - receiptImages
    ApiOfflineClaimAddressDto:
      type: object
      properties:
        firstName:
          type: string
          example: John
        lastName:
          type: string
          example: Smith
        address1:
          type: string
          example: 123 Main St
        address2:
          type: string
          nullable: true
          example: Apt 1
        city:
          type: string
          example: New York
        state:
          type: string
          nullable: true
          example: NY
        stateAbr:
          type: string
          nullable: true
          example: NY
        zip:
          type: string
          example: '10001'
        country:
          type: string
          example: United States
        countryAbr:
          type: string
          nullable: true
          example: US
        lat:
          type: number
          nullable: true
          example: 40.7128
        lng:
          type: number
          nullable: true
          example: -74.006
        addressOrigin:
          type: string
          enum:
            - CONCIERGE
            - VALET
          default: CONCIERGE
          example: CONCIERGE
      required:
        - firstName
        - lastName
        - address1
        - city
        - zip
        - country
  securitySchemes:
    bearer:
      scheme: bearer
      bearerFormat: JWT
      type: http

````