openapi: 3.0.1 info: title: DWP HTDS Claim Manager Service description: Rest API for managing the claim record version: '@project.version@' servers: - url: 'https://localhost:8080' paths: /v1/claim: post: tags: - claim summary: POST call to create a claim record, or return existing one if already created description: | * Mandatory fields for Update claim - Claimant Id, Benefit type. e.g. ``` { "claimant_id": "5efbb7aebb703c618c3d4fe5", "benefit_type": "PIP" } ``` operationId: returnOrCreateClaim requestBody: $ref: '#/components/requestBodies/ClaimCreateRequest' responses: 200: description: FOUND - an existing claim returned content: application/json: schema: $ref: '#/components/schemas/ClaimRecordReturn' 201: description: CREATED - no claim with given claimant id found, new claim created and returned content: application/json: schema: $ref: '#/components/schemas/ClaimRecordReturn' 400: description: BAD REQUEST - badly formed json or invalid PIP form data content: application/json: schema: $ref: '#/components/schemas/ErrorResponseObject' 500: description: INTERNAL SERVER ERROR - an internal error occurred /v1/claim/update: patch: tags: - claim summary: PATCH call to update a claim record description: | * Mandatory fields for Update claim - CLaim Id, Form data. e.g. ``` { "claim_id": "5efbb7aebb703c618c3d4fe5", "form_data": "{\"data\", \"claim data\"}", } ``` operationId: updateClaim requestBody: $ref: '#/components/requestBodies/ClaimUpdateRequest' responses: 200: description: UPDATED - an existing claim updated and returned content: application/json: schema: $ref: '#/components/schemas/ClaimRecordReturn' 400: description: BAD REQUEST - badly formed json or invalid PIP form data content: application/json: schema: $ref: '#/components/schemas/ErrorResponseObject' 401: description: UNAUTHORIZED - claim does not exist with these values 500: description: INTERNAL SERVER ERROR - an internal error occurred /v1/claim/complete: post: tags: - claim summary: POST call to complete an active claim description: | Endpoint to complete the application form claim process and claim status updated.

operationId: claimComplete requestBody: $ref: '#/components/requestBodies/ClaimCompleteRequest' responses: 200: description: claim record completed 400: description: BAD REQUEST - badly formed json or invalid PIP form data content: application/json: schema: $ref: '#/components/schemas/ErrorResponseObject' 401: description: UNAUTHORIZED - claim does not exist with these values 500: description: INTERNAL SERVER ERROR - an internal error occurred /v1/claim/status/{claimId}: get: tags: - query summary: GET claim status. description: | endpoint to query status of a claim.

operationId: queryClaim parameters: - in: path name: claimId description: unique claim id required: true schema: type: string responses: 200: description: fetch an existing claim content: application/json: schema: $ref: '#/components/schemas/ClaimStatus' 400: description: BAD REQUEST - badly formed json or invalid PIP form data content: application/json: schema: $ref: '#/components/schemas/ErrorResponseObject' 500: description: INTERNAL SERVER ERROR - an internal error occurred components: requestBodies: ClaimCreateRequest: required: true content: application/json: schema: $ref: '#/components/schemas/ClaimCreateObject' ClaimUpdateRequest: required: true content: application/json: schema: $ref: '#/components/schemas/ClaimUpdateObject' ClaimCompleteRequest: required: true content: application/json: schema: $ref: '#/components/schemas/ClaimCompleteObject' schemas: ClaimCreateObject: type: object required: - claimant_id - benefit_type allOf: - $ref: '#/components/schemas/ClaimantId' - $ref: '#/components/schemas/BenefitType' ClaimUpdateObject: type: object required: - claimant_id - benefit_type allOf: - $ref: '#/components/schemas/ClaimId' - $ref: '#/components/schemas/FormData' ClaimCompleteObject: type: object required: - claim_id - submission_id allOf: - $ref: '#/components/schemas/ClaimId' - $ref: '#/components/schemas/SubmissionId' properties: drs_request_id: type: string description: drs request id example: "5ed0d430716609122be7a4d6" pattern: ^(?!\s*$).+ ClaimRecordReturn: type: object allOf: - $ref: '#/components/schemas/ClaimId' - $ref: '#/components/schemas/SubmissionId' - $ref: '#/components/schemas/FormData' - $ref: '#/components/schemas/ClaimStatus' ErrorResponseObject: type: object required: - message allOf: - $ref: '#/components/schemas/Details' BenefitType: type: object properties: benefit_type: description: the type of benefit PIP, ESA etc.. example: PIP type: string enum: - PIP ClaimantId: type: object description: claimant id (account reference) properties: claimant_id: example: "6ed1d430716609122be7a4d6" type: string pattern: ^(?!\s*$).+ ClaimId: type: object description: claim id properties: claim_id: example: "5ed0d430716609122be7a4d6" type: string pattern: ^(?!\s*$).+ SubmissionId: type: object description: submission id properties: submission_id: example: "5ed0d430716609122be7a4d6" type: string pattern: ^(?!\s*$).+ ClaimStatus: type: object properties: claim_status: description: the status of the claim record example: CLAIM_STARTED type: string enum: - CLAIM_STARTED - APPLICATION_SUBMITTED FormData: type: object properties: form_data: description: the session data blob type: string example: "{\"data\", \"claim data\"}" pattern: ^(?!\s*$).+ Details: type: object properties: message: description: detail description of fail/success type: string