openapi: 3.0.0
info:
title: Appealable Issues Messaging API
version: v0
contact:
name: developer.va.gov
description: "The Appealable Issues API lets you retrieve a list of a claimant’s appealable issues and any chains of preceding issues. Appealable issues are issues from claims about which VA has made a decision that may be eligible for appeal. Not all appealable issues are guaranteed to be eligible for appeal; for example, claimants may have another appeal in progress for an issue.\n\nTo check the status of all decision reviews and appeals for a specified individual, use the [Appeals Status API](https://developer.va.gov/explore/api/appeals-status/docs).\n\nTo file an appeal or decision review, use one of these APIs: \n* [Higher-Level Reviews API](https://developer.va.gov/explore/api/higher-level-reviews/docs)\n* [Notice of Disagreements API](https://developer.va.gov/explore/api/notice-of-disagreements/docs)\n* [Supplemental Claims API](https://developer.va.gov/explore/api/supplemental-claims/docs)\n\n## Technical overview\nThe Appealable Issues API pulls data from Caseflow, a case management system. It provides decision review and appeal data that can be used for submitting a Higher Level Review, Notice of Disagreement, or Supplemental Claim.\n\n### Authorization and Access\nThe authentication model for the Appealable Issues API uses OAuth 2.0/OpenID Connect. The following authorization models are supported:\n* [Authorization code flow](https://developer.va.gov/explore/api/appealable-issues/authorization-code)\n* [Client Credentials Grant (CCG)](https://developer.va.gov/explore/api/appealable-issues/client-credentials)\n\n**Important:** To get production access using client credentials grant, you must either work for VA or have specific VA agreements in place. If you have questions, [contact us](https://developer.va.gov/support/contact-us).\n\n### Test data\n\nOur sandbox environment is populated with [Veteran test data](https://github.com/department-of-veterans-affairs/vets-api-clients/blob/master/test_accounts/appealable_issues_test_accounts.md) that can be used to test various response scenarios. This sandbox data contains no PII or PHI, but mimics real Veteran account information.\n"
servers:
- url: https://sandbox-api.va.gov/services/appeals/appealable-issues/{version}
description: VA.gov API sandbox environment
variables:
version:
default: v0
- url: https://api.va.gov/services/appeals/appealable-issues/{version}
description: VA.gov API production environment
variables:
version:
default: v0
tags:
- name: Messaging
paths:
/v1/messaging/folders:
get:
description: List available secure messaging folders
operationId: get_folders
responses:
'200':
content:
application/json:
schema:
$ref: ./schemas/SecureMessagingFolders.yml
description: OK
'401':
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
description: Unauthorized
'403':
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
description: Not authorized for access to secure messages
summary: /v1/messaging/folders
tags:
- Messaging
/v1/messaging/folders/{id}:
get:
description: Get a secure messaging folder
operationId: get_folder
responses:
'200':
content:
application/json:
schema:
$ref: ./schemas/SecureMessagingFolder.yml
description: OK
'401':
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
description: Unauthorized
'403':
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
description: Not authorized for access to secure messages
summary: /v1/messaging/folders/{id}
tags:
- Messaging
put:
description: Rename an existing folder
operationId: post_rename_folder
requestBody:
content:
application/json:
schema:
example:
name: New Name for Folder
type: object
required: true
responses:
'201':
content:
application/json:
schema:
$ref: ./schemas/SecureMessagingFolder.yml
description: OK
'401':
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
description: Unauthorized
'403':
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
description: Not authorized for access to secure messages
summary: /v1/messaging/folders/{id}
tags:
- Messaging
/v1/messaging/folders/{id}/threads:
get:
description: List threads in a secure messaging folder.
operationId: get_folder_threads
parameters:
- description: The id of the folder that threads are being retrieved from
in: path
name: folderId
required: true
schema:
type: string
- description: The size of the pagination you want
in: query
name: pageSize,
required: true
schema:
type: string
- description: The page number to get based on your page size
in: query
name: pageNumber,
required: true
schema:
type: string
- description: The field to sort the results by
in: query
name: sortField,
required: true
schema:
type: string
enum:
- SENDER_NAME
- RECIPIENT_NAME
- SENT_DATE
- DRAFT_DATE
- description: The order to sort the results by
in: query
name: sortOrder,
required: true
schema:
type: string
enum:
- ASC
- DESC
- $ref: '#/components/parameters/InflectionHeader'
responses:
'200':
content:
application/json:
schema:
$ref: ./schemas/SecureMessageThreadList.yml
description: OK
'401':
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
description: Unauthorized
'403':
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
description: Not authorized for access to secure messages
summary: /v1/messaging/folders/{id}/threads
tags:
- Messaging
/v1/messaging/folders/{id}/search:
post:
description: 'Search messages in a secure messaging folder. If multiple search criteria are specified, each returned search
result will match ALL criteria. Pagination is supported and is handled by the upstream MHV server.
When listing messages, the response for each message will include most but not all of the message attributes.
Specifically, the message body and attachment information is not included. Those attributes can be obtained by
getting the specific message resource.
'
operationId: search_folder
parameters:
- description: The page of results to be returned (passed through to MHV API)
in: query
name: page
required: false
schema:
type: integer
default: 1
- description: The number of results per page (passed through to MHV API)
in: query
name: per_page,
required: false
schema:
type: integer
default: 250
- $ref: '#/components/parameters/InflectionHeader'
requestBody:
content:
application/json:
schema:
$ref: ./schemas/SecureMessageSearchRequest.yml
required: true
responses:
'200':
content:
application/json:
schema:
$ref: ./schemas/SecureMessageSearch.yml
description: OK
'401':
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
description: Unauthorized
'403':
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
description: Not authorized for access to secure messages
summary: /v1/messaging/folders/{id}/search
tags:
- Messaging
/v1/messaging/message_drafts:
post:
description: Save a new draft message
operationId: post_create_message_draft
requestBody:
content:
application/json:
schema:
$ref: ./schemas/SecureMessageNewMessageRequest.yml
required: true
responses:
'201':
content:
application/json:
schema:
$ref: ./schemas/SecureMessageNewMessageRequest.yml
description: Created
'401':
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
description: Unauthorized
'403':
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
description: Not authorized for access to secure messages
summary: /v1/messaging/message_drafts
parameters:
- $ref: '#/components/parameters/InflectionHeader'
tags:
- Messaging
/v1/messaging/message_drafts/{id}:
put:
description: Update an existing draft message
operationId: post_create_message_draft
parameters:
- description: The id of the draft that is to be updated
in: path
name: id
required: true
schema:
type: string
- $ref: '#/components/parameters/InflectionHeader'
requestBody:
content:
application/json:
schema:
example:
body: the updated message
type: object
required: true
responses:
'204':
description: No Content
'401':
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
description: Unauthorized
'403':
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
description: Not authorized for access to secure messages
summary: /v1/messaging/message_drafts/{id}
tags:
- Messaging
/v1/messaging/message_drafts/{reply_id}/replydraft:
post:
description: Save a new draft message as a reply to an existing message
operationId: post_create_message_draft_reply
parameters:
- description: The id of the message that will be replied to
in: path
name: reply_id
required: true
schema:
type: string
- $ref: '#/components/parameters/InflectionHeader'
requestBody:
content:
application/json:
schema:
$ref: ./schemas/SecureMessageNewMessageRequest.yml
required: true
responses:
'201':
content:
application/json:
schema:
$ref: ./schemas/SecureMessageNewMessageRequest.yml
description: Created
'401':
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
description: Unauthorized
'403':
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
description: Not authorized for access to secure messages
summary: /v1/messaging/message_drafts/{reply_id}/replydraft
tags:
- Messaging
/v1/messaging/message_drafts/{reply_id}/replydraft/{draft_id}:
post:
description: Edit a draft message that was a reply to an existing message
operationId: post_create_message_draft_reply
parameters:
- description: The id of the message that will be replied to
in: path
name: reply_id
required: true
schema:
type: string
- description: The id of the draft that is to be updated
in: path
name: draft_id
required: true
schema:
type: string
- $ref: '#/components/parameters/InflectionHeader'
requestBody:
content:
application/json:
schema:
example:
body: the updated message
type: object
required: true
responses:
'204':
description: No Content
'401':
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
description: Unauthorized
'403':
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
description: Not authorized for access to secure messages
summary: /v1/messaging/message_drafts/{reply_id}/replydraft/{draft_id}
tags:
- Messaging
/v1/messaging/messages:
post:
description: 'Send a new secure message. When `prescription_id` is included in the request body,
the message is routed to the upstream MHV `POST message/renewal` endpoint for
prescription renewal messages.
'
operationId: post_create_message
parameters:
- description: Indicates if this message is for an OH triage group (allows larger attachments)
in: query
name: is_oh_triage_group
required: false
schema:
type: boolean
- $ref: '#/components/parameters/InflectionHeader'
requestBody:
content:
application/json:
schema:
$ref: ./schemas/SecureMessageNewMessageRequest.yml
multipart/form-data:
schema:
properties:
message:
description: Stringified JSON with same parameters as if this was an application/json request (e.g. '{"category":"OTHER","recipient_id":1763526,"body":"test message"}')
type: string
uploads[]:
description: 'One or more message attachments.
NOTES:
- A single message may have a maximum of 4 attachments (10 for OH triage groups).
- A single attachment cannot exceed 6 MB (25 MB for OH triage groups)
- All attachments combined cannot exceed 10 MB (25 MB for OH triage groups)
- Supported file types/extensions: DOC, DOCX, GIF, JPG, JPEG, PDF, PNG, RTF, TXT, XLS, XLSX, JFIF, PJPEG, PJP (OH triage groups also support: BMP, TIFF, TIF, PPT, PPTX, PPS, PPSX, ODT, MP4, M4V, MOV, WMV, MPG).
'
items:
format: binary
type: string
type: array
type: object
description: "New message body.\n\nNOTES:\n\n - If a subject isn't included, default subject will be \"{{Category}} Inquiry\" (e.g. Medication Inquiry)
\n - Messages can only be replied to for 45 days. After that, the message is considered \"expired\"
\n - If sending a draft, include the draft's ID in the request body as `draft_id`. Draft will be deleted once sent. Any fields included in request body will overwrite original draft contents.\n
- If including file attachments, this request must be sent as multipart/form-data
\n - \n File attachment restrictions (as imposed by MHV):\n
\n - User may attach up to 4 files (10 files for OH triage groups)
\n - Single attachment cannot exceed 6 MB (25 MB for OH triage groups)
\n - Total attachment cannot exceed 10 MB (25 MB for OH triage groups)
\n - Accepted formats: DOC, DOCX, GIF, JPG, JPEG, PDF, PNG, RTF, TXT, XLS, XLSX, JFIF, PJPEG, PJP (OH triage groups also support: BMP, TIFF, TIF, PPT, PPTX, PPS, PPSX, ODT, MP4, M4V, MOV, WMV, MPG)
\n
\n \n
\n"
required: true
responses:
'200':
content:
application/json:
schema:
$ref: ./schemas/SecureMessageDetail.yml
description: OK
'400':
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
description: 'Bad Request - Oracle Health message send failed. This can occur when:
- Message status polling returns FAILED or INVALID status
- Error code SM98 will be returned in the response'
'401':
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
description: Unauthorized
'403':
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
description: Not authorized for access to secure messages
'422':
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
description: 'Unprocessable Entity - Validation failed for one or more message fields
(for example, missing or empty `body`), as defined by the request schema.
'
summary: /v1/messaging/messages
tags:
- Messaging
/v1/messaging/messages/categories:
get:
description: List available message categories
operationId: get_categories
responses:
'200':
content:
application/json:
schema:
$ref: ./schemas/SecureMessageCategories.yml
description: OK
'401':
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
description: Unauthorized
'403':
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
description: Not authorized for access to secure messages
summary: /v1/messaging/messages/categories
parameters:
- $ref: '#/components/parameters/InflectionHeader'
tags:
- Messaging
/v1/messaging/messages/oh_sync_status:
get:
description: Get the Oracle Health sync status
operationId: get_oh_sync_status
responses:
'200':
content:
application/json:
schema:
$ref: ./schemas/OhSyncStatus.yml
description: OK
'401':
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
description: Unauthorized
'403':
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
description: Not authorized for access to secure messages
'502':
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
description: Bad Gateway - upstream service error
summary: /v1/messaging/messages/oh_sync_status
parameters:
- $ref: '#/components/parameters/InflectionHeader'
tags:
- Messaging
/v1/messaging/messages/{id}:
delete:
description: Moves a secure message to the "Deleted" folder
operationId: delete_message
parameters:
- description: The id of the message that is to be deleted
in: path
name: id
required: true
schema:
type: string
- $ref: '#/components/parameters/InflectionHeader'
responses:
'204':
description: The message was deleted successfully
'400':
content:
application/json:
example:
errors:
- code: SM114
detail: Unable to move message
status: '400'
title: Operation failed
schema:
$ref: ./schemas/Errors.yml
description: Bad Request
'401':
content:
application/json:
example:
errors:
- code: '401'
detail: IAM user session is inactive
status: '401'
title: Not authorized
schema:
$ref: ./schemas/Errors.yml
description: Unauthorized
'403':
content:
application/json:
example:
errors:
- code: '403'
detail: You do not have access to messaging
status: '403'
title: Forbidden
schema:
$ref: ./schemas/Errors.yml
description: Not authorized for access to secure messages
summary: /v1/messaging/messages/{id}
tags:
- Messaging
get:
description: "Get a secure message and mark the message as read.\n\nNOTES:\n\n - Unlike listing messages in a folder, the message resource returned from this operation will include\nthe message body and attachment information.
\n - This GET operation is not fully idempotent and will set readReceipt field as 'READ'
\n - If message has an attachment included, attachmentSize is displayed in bytes
\n
\n"
operationId: get_message
responses:
'200':
content:
application/json:
schema:
$ref: ./schemas/SecureMessageDetail.yml
description: OK
'401':
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
description: Unauthorized
'403':
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
description: Not authorized for access to secure messages
summary: /v1/messaging/messages/{id}
parameters:
- $ref: '#/components/parameters/InflectionHeader'
tags:
- Messaging
patch:
description: Moves a secure message to a specified folder
operationId: post_move_message
parameters:
- description: The id of the message that is to be moved
in: path
name: id
required: true
schema:
type: string
- description: The id of the folder that the message is to be moved to
in: query
name: folder_id,
required: true
schema:
type: string
- $ref: '#/components/parameters/InflectionHeader'
responses:
'204':
description: The message was moved successfully
'401':
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
description: Unauthorized
'403':
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
description: Not authorized for access to secure messages
summary: /v1/messaging/messages/{id}/move
tags:
- Messaging
/v1/messaging/messages/{id}/attachments/{attachment_id}:
get:
description: 'Get a secure message attachment content as a direct binary download. Secure messaging supports the following file types/extensions: doc, docx, gif, jpg, pdf, png, rtf, txt, xls, xlsx.
'
operationId: get_attachment
parameters:
- description: ID of the message that we are retrieving attachments of
in: path
name: id
required: true
schema:
type: integer
- $ref: '#/components/parameters/InflectionHeader'
responses:
'200':
content:
application/octet-stream:
schema:
format: binary
type: string
description: OK
headers:
Content-Disposition:
description: 'This header will have the value of "attachment", and a "filename" parameter containing the original filename of the attached content.
'
schema:
type: string
'401':
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
description: Unauthorized
'403':
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
description: Not authorized for access to secure messages
summary: /v1/messaging/messages/{id}/attachments/{attachment_id}
tags:
- Messaging
/v1/messaging/messages/{id}/reply:
post:
description: "Send reply to a secure message\n\nNOTE: If including file attachments, this request must be sent as multipart/form-data\n\nFile attachment restrictions (as imposed by MHV):\n\n - User may attach up to 4 files (10 files for OH triage groups)
\n - Accepted formats: DOC, DOCX, GIF, JPG, JPEG, PDF, PNG, RTF, TXT, XLS, XLSX, JFIF, PJPEG, PJP (OH triage groups also support: BMP, TIFF, TIF, PPT, PPTX, PPS, PPSX, ODT, MP4, M4V, MOV, WMV, MPG)
\n - Single attachment cannot exceed 6 MB (25 MB for OH triage groups)
\n - Total attachment cannot exceed 10 MB (25 MB for OH triage groups)
\n
\n"
operationId: post_create_message_reply
parameters:
- description: ID of the message that is being replied to
in: path
name: id
required: true
schema:
type: integer
- description: Indicates if this message is for an OH triage group (allows larger attachments)
in: query
name: is_oh_triage_group
required: false
schema:
type: boolean
- $ref: '#/components/parameters/InflectionHeader'
requestBody:
content:
application/json:
schema:
$ref: ./schemas/SecureMessageReplyRequest.yml
multipart/form-data:
schema:
properties:
message:
description: Stringified JSON with same parameters as if this was an application/json request (e.g. '{"body":"test body with attachment"}')
type: string
uploads[]:
description: 'One or more message attachments.
NOTES:
- A single message may have a maximum of 4 attachments (10 for OH triage groups).
- A single attachment cannot exceed 6 MB (25 MB for OH triage groups)
- All attachments combined cannot exceed 10 MB (25 MB for OH triage groups)
- Supported file types/extensions: DOC, DOCX, GIF, JPG, JPEG, PDF, PNG, RTF, TXT, XLS, XLSX, JFIF, PJPEG, PJP (OH triage groups also support: BMP, TIFF, TIF, PPT, PPTX, PPS, PPSX, ODT, MP4, M4V, MOV, WMV, MPG).
'
items:
format: binary
type: string
type: array
type: object
description: Reply message body
required: true
responses:
'200':
content:
application/json:
schema:
$ref: ./schemas/SecureMessageDetail.yml
description: OK
'400':
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
description: "Bad Request - Oracle Health message send failed. This can occur when:\n\n - Message status polling returns FAILED or INVALID status
\n - Error code SM98 will be returned in the response
\n
\n"
'401':
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
description: Unauthorized
'403':
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
description: Not authorized for access to secure messages
'422':
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
description: 'Unprocessable Entity - Validation failed for one or more message fields
(for example, missing or empty `body`), as defined by the request schema.
'
summary: /v1/messaging/messages/{id}/reply
tags:
- Messaging
/v1/messaging/messages/{id}/thread:
get:
description: 'Gets a list of message summaries that are related to the message of the passed id.
'
operationId: get_messages_for_thread
responses:
'200':
content:
application/json:
schema:
oneOf:
- $ref: ./schemas/SecureMessageListInThread.yml
- $ref: ./schemas/SecureMessageListInThreadWithFullBody.yml
description: OK
'401':
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
description: Unauthorized
'403':
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
description: Not authorized for access to secure messages
summary: /v1/messaging/messages/{id}/thread
parameters:
- name: full_body
in: query
description: Include the full body of the messages and attachments meta in the response
required: false
schema:
type: boolean
- $ref: '#/components/parameters/InflectionHeader'
tags:
- Messaging
/v1/messaging/recipients:
get:
description: List available recipients to which messages may be sent
operationId: get_triage_teams
responses:
'200':
content:
application/json:
schema:
$ref: ./schemas/SecureMessagingRecipients.yml
description: OK
'401':
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
description: Unauthorized
'403':
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
description: Not authorized for access to secure messages
summary: /v1/messaging/recipients
parameters:
- $ref: '#/components/parameters/InflectionHeader'
tags:
- Messaging
/v1/messaging/allrecipients:
get:
description: List available recipients to which messages may be sent with advanced attributes
operationId: get_all_triage_teams
responses:
'200':
content:
application/json:
schema:
$ref: ./schemas/SecureMessagingAllRecipients.yml
description: OK
'401':
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
description: Unauthorized
'403':
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
description: Not authorized for access to secure messages
summary: /v1/messaging/allrecipients
tags:
- Messaging
/v1/messaging/threads/{id}/move:
patch:
description: Moves all received messages in a secure message thread to a specified folder. Sent messages, draft messages, and deleted messages will not be moved.
operationId: post_move_thread
parameters:
- description: The id of the thread that is to be moved
in: path
name: id
required: true
schema:
type: string
- description: The id of the folder that the message is to be moved to
in: query
name: folder_id,
required: true
schema:
type: string
- $ref: '#/components/parameters/InflectionHeader'
responses:
'204':
description: The message thread was moved successfully
'401':
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
description: Unauthorized
'403':
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
description: Not authorized for access to secure messages
summary: /v1/messaging/threads/{id}/move
tags:
- Messaging
/v1/messaging/preferences/recipients:
post:
description: Update recipients `preferredTeam` value
operationId: update_triage_team_preferences
requestBody:
required: true
content:
application/json:
schema:
$ref: ./schemas/SecureMessagingUpdateTriageTeamRequest.yml
responses:
'200':
description: Success
content:
application/json:
type: string
example: Success
'401':
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
description: Unauthorized
'403':
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
description: Not authorized for access to secure messages
summary: /v1/messaging/preferences/recipients
tags:
- Messaging
/v1/messaging/preferences/signature:
get:
description: Gets user message signature preferences
operationId: get_signature
responses:
'200':
content:
application/json:
schema:
$ref: ./schemas/SecureMessageSignature.yml
description: OK
'401':
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
description: Unauthorized
'403':
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
description: Not authorized for access to secure messages
summary: /v1/messaging/preferences/signature
parameters:
- $ref: '#/components/parameters/InflectionHeader'
tags:
- Messaging
post:
description: Update user message signature preferences
operationId: update_signature
requestBody:
required: true
content:
application/json:
schema:
$ref: ./schemas/SecureMessageSignatureUpdateRequest.yml
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: ./schemas/SecureMessageSignature.yml
'401':
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
description: Unauthorized
'403':
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
description: Not authorized for access to secure messages
summary: /v1/messaging/preferences/signature
parameters:
- $ref: '#/components/parameters/InflectionHeader'
tags:
- Messaging
components:
parameters:
InflectionHeader:
in: header
name: X-Key-Inflection
required: false
schema:
type: string
enum:
- camel
- snake
description: Instructs the API to return camelCase keys rather than snake_case
securitySchemes:
bearer_token:
type: http
scheme: bearer
bearerFormat: JWT
productionOauth:
type: oauth2
description: 'The authentication model for the Appealable Issues API uses OAuth 2.0/OpenID Connect. The following authorization models are supported: [Authorization code flow](https://developer.va.gov/explore/api/appealable-issues/authorization-code) and [Client Credentials Grant (CCG)](https://developer.va.gov/explore/api/appealable-issues/client-credentials).'
flows:
authorizationCode:
authorizationUrl: https://api.va.gov/oauth2/appeals/v1/authorization
tokenUrl: https://api.va.gov/oauth2/appeals/v1/token
scopes:
veteran/AppealableIssues.read: Appealable issues info
veteran/appeals.read: Appeals info
representative/AppealableIssues.read: Appealable issues info
representative/appeals.read: Appeals info
clientCredentials:
tokenUrl: To get production access, you must either work for VA or have specific VA agreements in place. If you have questions, [contact us](https://developer.va.gov/support/contact-us).
scopes:
system/AppealableIssues.read: Appealable issues info
system/appeals.read: Appeals info
sandboxOauth:
type: oauth2
description: 'The authentication model for the Appealable Issues API uses OAuth 2.0/OpenID Connect. The following authorization models are supported: [Authorization code flow](https://developer.va.gov/explore/api/appealable-issues/authorization-code) and [Client Credentials Grant (CCG)](https://developer.va.gov/explore/api/appealable-issues/client-credentials).'
flows:
authorizationCode:
authorizationUrl: https://sandbox-api.va.gov/oauth2/appeals/v1/authorization
tokenUrl: https://sandbox-api.va.gov/oauth2/appeals/v1/token
scopes:
veteran/AppealableIssues.read: Appealable issues info
veteran/appeals.read: Appeals info
representative/AppealableIssues.read: Appealable issues info
representative/appeals.read: Appeals info
clientCredentials:
tokenUrl: https://deptva-eval.okta.com/oauth2/auskff5o6xsoQVngk2p7/v1/token
scopes:
system/AppealableIssues.read: Appealable issues info
system/appeals.read: Appeals info