### Schema: APIError Source: https://api.va.gov/internal/docs/veteran-confirmation/v1/openapi.json API invocation or processing error ```markdown ## Schema: APIError API invocation or processing error **Type:** object - **errors** (array (object)) Array items: - **title** (string) (example: "Error title") - **detail** (string) (example: "Detailed error message") - **code** (string) (example: "103") - **status** (string) (example: "400") ``` -------------------------------- ### Security: apiKey Source: https://api.va.gov/internal/docs/veteran-confirmation/v1/openapi.json Security scheme: apiKey ```markdown ## Security: apiKey **Description:** Security scheme: apiKey **Type:** apiKey ``` -------------------------------- ### Schema: AuthorizationError Source: https://api.va.gov/internal/docs/veteran-confirmation/v1/openapi.json API Platform authorization (API token) error ```markdown ## Schema: AuthorizationError API Platform authorization (API token) error **Type:** object - **message** (string) (example: "No API key found in request") ``` -------------------------------- ### Schema: VeteranStatusConfirmation Source: https://api.va.gov/internal/docs/veteran-confirmation/v1/openapi.json Veteran status confirmation for an individual ```markdown ## Schema: VeteranStatusConfirmation Veteran status confirmation for an individual **Type:** object - **id** (string): Non-identifying text string (example: "(REDACTED)") - **veteran_status** (string (confirmed|not confirmed)): Whether the system could confirm the Veteran status of an individual based on traits ("confirmed"|"not confirmed") - **not_confirmed_reason** (string): Defines reason for a not confirmed status response. Possible values: - ERROR - MORE_RESEARCH_REQUIRED - NOT_TITLE_38 - PERSON_NOT_FOUND ``` -------------------------------- ### Schema: ApiErrorDetails Source: https://api.va.gov/internal/docs/veteran-confirmation/v1/openapi.json Schema definition for ApiErrorDetails ```markdown ## Schema: ApiErrorDetails Schema definition for ApiErrorDetails **Type:** object - **title** (string) (example: "Error title") - **detail** (string) (example: "Detailed error message") - **code** (string) (example: "103") - **status** (string) (example: "400") ``` -------------------------------- ### API Overview: Veteran Confirmation Source: https://api.va.gov/internal/docs/veteran-confirmation/v1/openapi.json The Veteran Confirmation API returns whether a given person is `"confirmed"` or `"not confirmed"` as a [Title 38 Veteran](https://www.ecfr.gov/current/title-38). Confirming a Veteran's status can be useful for determining eligibility for discounts, services, preferential treatment, and certain jobs or education programs. A Veteran is a person who served in the active military, naval, air, or space service, and who was discharged or released under conditions other than dishonorable. Active duty service history in the Reserves and National Guard is considered active military service. Basic eligibility for VA benefits depends on the type of military service performed, the duration of the service, and the character of discharge or separation. A result of "not confirmed" does not necessarily mean that a person is not a Veteran. A person may have served without being entitled to the VA benefits of a Title 38 Veteran, or more research may be required to determine their status. If so, this API will return a status of "not confirmed." Reasons for this can include dishonorable character of service, insufficient length of active duty service, dates of service, or disability details. For more information about interpreting a status of "not confirmed" and suggested follow-up actions, see the not confirmed reasons section of this page. **Important:** This API does not provide details about a person's service experience or insight into why a person is `"not confirmed"` as a Title 38 Veteran. The [Veteran Service History and Eligibility API](https://developer.va.gov/explore/verification/docs/veteran_verification?version=current) has different authentication methods and can provide additional information about Veterans. Veterans can obtain additional information about their service history on [VA.gov](https://www.va.gov/). ## Technical Overview ### Not confirmed reasons If the API returns a veteran_status of "not confirmed", it will also return one of the following ```not_confirmed_reason``` values: - ```PERSON_NOT_FOUND``` : The person was not found in VA source systems with the provided information. - **Suggested action**: Re-check information and try query again. Including more demographic data for a Veteran increases the likelihood of finding their records in VA source systems. - ```NOT_TITLE_38```: VA data sources indicate that the person does not have Title 38 status. - **Suggested action**: The person should contact VA if they believe they should have Title 38 status. - ```MORE_RESEARCH_REQUIRED```: VA cannot confirm the person's Title 38 status with existing records. - **Suggested action**: The Veteran should request a manual review from VA if they believe that they should have Title 38 status. - ```ERROR```: One or more VA source systems is not available or returned an error response. - **Suggested action**: Run the request again. ### Authentication and Authorization This API requires an API key together with identifiable information for the person being confirmed. API requests are authorized through a symmetric API token provided in an HTTP header with the name 'apikey'. ### Test data We use mock test data in the sandbox environment. APIs accessed via the Sandbox environment are using the same underlying logic as VA's production APIs; only the underlying data store is different. Use these [test user attributes](https://developer.va.gov/explore/api/veteran-confirmation/test-users) in sandbox to populate the request body as only test users can return a `"confirmed"` response. In sandbox, only a test user's date of birth and zip code are used to identify a Veteran. ```yaml # Veteran Confirmation # Version: 0.0.2 The Veteran Confirmation API returns whether a given person is `"confirmed"` or `"not confirmed"` as a [Title 38 Veteran](https://www.ecfr.gov/current/title-38). Confirming a Veteran's status can be useful for determining eligibility for discounts, services, preferential treatment, and certain jobs or education programs. A Veteran is a person who served in the active military, naval, air, or space service, and who was discharged or released under conditions other than dishonorable. Active duty service history in the Reserves and National Guard is considered active military service. Basic eligibility for VA benefits depends on the type of military service performed, the duration of the service, and the character of discharge or separation. A result of "not confirmed" does not necessarily mean that a person is not a Veteran. A person may have served without being entitled to the VA benefits of a Title 38 Veteran, or more research may be required to determine their status. If so, this API will return a status of "not confirmed." Reasons for this can include dishonorable character of service, insufficient length of active duty service, dates of service, or disability details. For more information about interpreting a status of "not confirmed" and suggested follow-up actions, see the not confirmed reasons section of this page. **Important:** This API does not provide details about a person's service experience or insight into why a person is `"not confirmed"` as a Title 38 Veteran. The [Veteran Service History and Eligibility API](https://developer.va.gov/explore/verification/docs/veteran_verification?version=current) has different authentication methods and can provide additional information about Veterans. Veterans can obtain additional information about their service history on [VA.gov](https://www.va.gov/). ## Technical Overview ### Not confirmed reasons If the API returns a veteran_status of "not confirmed", it will also return one of the following ```not_confirmed_reason``` values: - ```PERSON_NOT_FOUND``` : The person was not found in VA source systems with the provided information. - **Suggested action**: Re-check information and try query again. Including more demographic data for a Veteran increases the likelihood of finding their records in VA source systems. - ```NOT_TITLE_38```: VA data sources indicate that the person does not have Title 38 status. - **Suggested action**: The person should contact VA if they believe they should have Title 38 status. - ```MORE_RESEARCH_REQUIRED```: VA cannot confirm the person's Title 38 status with existing records. - **Suggested action**: The Veteran should request a manual review from VA if they believe that they should have Title 38 status. - ```ERROR```: One or more VA source systems is not available or returned an error response. - **Suggested action**: Run the request again. ### Authentication and Authorization This API requires an API key together with identifiable information for the person being confirmed. API requests are authorized through a symmetric API token provided in an HTTP header with the name 'apikey'. ### Test data We use mock test data in the sandbox environment. APIs accessed via the Sandbox environment are using the same underlying logic as VA's production APIs; only the underlying data store is different. Use these [test user attributes](https://developer.va.gov/explore/api/veteran-confirmation/test-users) in sandbox to populate the request body as only test users can return a `"confirmed"` response. In sandbox, only a test user's date of birth and zip code are used to identify a Veteran. # Base URL: https://sandbox-api.va.gov/services/veteran-confirmation/{version} ``` -------------------------------- ### Schema: VeteranStatusRequest Source: https://api.va.gov/internal/docs/veteran-confirmation/v1/openapi.json - Use current residence address of the Veteran. Some unhoused Veterans can use a local USPS, support organization, or other location such as 'the corner of RTE512 and U.S.1'. - Aim to match the input against the Veteran's demographic information in their VA.gov profile. - Data in the request and the VA record is standardized using the same algorithm prior to matching. If the data is close, and enough fields are provided, it will find the Veteran most of the time. - If data submitted is not in sync with the Veteran's VA profile, it may be helpful to re-try the request with a different address or name. The Veteran may need to update their information with the VA if they are not found or if their current data is not in sync. ```markdown ## Schema: VeteranStatusRequest - Use current residence address of the Veteran. Some unhoused Veterans can use a local USPS, support organization, or other location such as 'the corner of RTE512 and U.S.1'. - Aim to match the input against the Veteran's demographic information in their VA.gov profile. - Data in the request and the VA record is standardized using the same algorithm prior to matching. If the data is close, and enough fields are provided, it will find the Veteran most of the time. - If data submitted is not in sync with the Veteran's VA profile, it may be helpful to re-try the request with a different address or name. The Veteran may need to update their information with the VA if they are not found or if their current data is not in sync. **Type:** object - **gender** (string): For gender, only 'm' or 'f' will help the search currently. - **firstName** (string) (required) - **middleName** (string) - **lastName** (string) (required): Valid entries for the name fields include: - First character must be an alpha/letter character (upper or lowercase). - Upper and/or lower case letters - Spaces - Special characters: forward slash /, back slash \\, hyphen -, single quote (apostrophe) ' - Consecutive special characters are not supported. - More than one name in a field. For example: First name: Margaret Mary - Names in the field can be separated by a space or a valid special character (forward slash /, back slash \\, hyphen -, single quote (apostrophe) '). - Diacritical characters (i.e., ä: umlaught; é: accent) are not currently supported and will generate an error. - Numerical characters are not supported Note: If a veteran is not found, and the veteran name has special characters or even multiple names, the veteran might be found in subsequent requests to veteran confirmation with some changes to the names. For example, a submission of 'O'leary' can be can be changed to 'oleary' and that could result in a match. Another example: Veteran's last name is 'Smith-Jones', and a request with that exact last name doesn't result in the veteran being found. You can try making another request but with the following variations for the last name field: 'SmithJones', 'Smith Jones', 'Jones', 'Smith'. Note: Capitalization does not have an effect on whether or not a person is found. It doesn't matter if someone sends "John" vs "john" for example. - **zipCode** (string) (required): zip code can accept one to sixteen uppercase or lowercase letters, digits, spaces, or hyphens -. - **city** (string) (required): City can accept one or more uppercase or lowercase letters, digits, spaces, commas, apostrophes ', periods, back slashes \\, forward slashes /, or hyphens - . - **state** (string) (required): State field can accept a string that starts with one or more uppercase or lowercase letters, followed by zero or more occurrences of a space or hyphen and one or more uppercase or lowercase letters. - **country** (string) (required): Country field can accept a string that starts with one or more uppercase or lowercase letters, followed by zero or more occurrences of a space or hyphen and one or more uppercase or lowercase letters. - **birthDate** (string (date)) (required): Birth date can accept dates in YYYY-MM-DD format. - **streetAddressLine1** (string) (required): Address line 1 can accept one or more letters (uppercase or lowercase), digits, spaces, commas, hashes(#), apostrophes('), periods(.), back slashes(\\), forward slashes(/), or hyphens(-). - **streetAddressLine2** (string): Address line 2 can accept one or more letters (uppercase or lowercase), digits, spaces, commas, hashes(#), apostrophes('), periods(.), back slashes(\\), forward slashes(/), or hyphens(-). - **streetAddressLine3** (string): Address line 3 can accept one or more letters (uppercase or lowercase), digits, spaces, commas, hashes(#), apostrophes('), periods(.), back slashes(\\), forward slashes(/), or hyphens(-). - **homePhoneNumber** (string) - **mothersMaidenName** (string) - **birthPlaceCity** (string): Birth place city can accept one or more uppercase or lowercase letters, digits, spaces, commas, apostrophes ', periods, back slashes \\, forward slashes /, or hyphens - . - **birthPlaceState** (string): Birth place state can accept, One or more uppercase or lowercase letters, digits, spaces, commas, apostrophes ', or hyphens -. - **birthPlaceCountry** (string): Birth place country can accept, one or more uppercase or lowercase letters, digits, spaces, commas, apostrophes ', or hyphens -. ``` -------------------------------- ### POST /status Source: https://api.va.gov/internal/docs/veteran-confirmation/v1/openapi.json Confirm an individual's Title 38 Veteran status according to VA. This endpoint accepts demographic information for the person to be confirmed and matches it against VA records. If there are differences between the data entered and the data on file, a match to a person may not be found. If a successful match is identified, Title 38 Veteran status is checked. - ```"confirmed"``` indicates Title 38 Veteran status. - ```"not confirmed"``` can mean several different things, depending on the following not_confirmed_reason values: - ```PERSON_NOT_FOUND```: The person was not found in VA source systems with the provided information. Including more demographic data for a Veteran increases the likelihood of finding their records in VA source systems. - ```NOT_TITLE_38```: VA data sources indicate that the person does not have Title 38 status. - ```MORE_RESEARCH_REQUIRED```: VA cannot confirm the person's Title 38 status with existing records. - ```ERROR```: One or more VA source systems is not available or returned an error response. - If ```"not confirmed"``` is returned, it can help to try again with different addresses or names or optional fields. If needed, Veterans may update their profile with the VA on VA.gov. - The updated information will be available to this API immediately. Additional field-level guidance is provided in the schema section of this documentation. ```markdown ### Request Body **Content-Type:** application/json - **gender** (string): For gender, only 'm' or 'f' will help the search currently. - **firstName** (string) (required) - **middleName** (string) - **lastName** (string) (required): Valid entries for the name fields include: - First character must be an alpha/letter character (upper or lowercase). - Upper and/or lower case letters - Spaces - Special characters: forward slash /, back slash \\, hyphen -, single quote (apostrophe) ' - Consecutive special characters are not supported. - More than one name in a field. For example: First name: Margaret Mary - Names in the field can be separated by a space or a valid special character (forward slash /, back slash \\, hyphen -, single quote (apostrophe) '). - Diacritical characters (i.e., ä: umlaught; é: accent) are not currently supported and will generate an error. - Numerical characters are not supported Note: If a veteran is not found, and the veteran name has special characters or even multiple names, the veteran might be found in subsequent requests to veteran confirmation with some changes to the names. For example, a submission of 'O'leary' can be can be changed to 'oleary' and that could result in a match. Another example: Veteran's last name is 'Smith-Jones', and a request with that exact last name doesn't result in the veteran being found. You can try making another request but with the following variations for the last name field: 'SmithJones', 'Smith Jones', 'Jones', 'Smith'. Note: Capitalization does not have an effect on whether or not a person is found. It doesn't matter if someone sends "John" vs "john" for example. - **zipCode** (string) (required): zip code can accept one to sixteen uppercase or lowercase letters, digits, spaces, or hyphens -. - **city** (string) (required): City can accept one or more uppercase or lowercase letters, digits, spaces, commas, apostrophes ', periods, back slashes \\, forward slashes /, or hyphens - . - **state** (string) (required): State field can accept a string that starts with one or more uppercase or lowercase letters, followed by zero or more occurrences of a space or hyphen and one or more uppercase or lowercase letters. - **country** (string) (required): Country field can accept a string that starts with one or more uppercase or lowercase letters, followed by zero or more occurrences of a space or hyphen and one or more uppercase or lowercase letters. - **birthDate** (string (date)) (required): Birth date can accept dates in YYYY-MM-DD format. - **streetAddressLine1** (string) (required): Address line 1 can accept one or more letters (uppercase or lowercase), digits, spaces, commas, hashes(#), apostrophes('), periods(.), back slashes(\\), forward slashes(/), or hyphens(-). - **streetAddressLine2** (string): Address line 2 can accept one or more letters (uppercase or lowercase), digits, spaces, commas, hashes(#), apostrophes('), periods(.), back slashes(\\), forward slashes(/), or hyphens(-). - **streetAddressLine3** (string): Address line 3 can accept one or more letters (uppercase or lowercase), digits, spaces, commas, hashes(#), apostrophes('), periods(.), back slashes(\\), forward slashes(/), or hyphens(-). - **homePhoneNumber** (string) - **mothersMaidenName** (string) - **birthPlaceCity** (string): Birth place city can accept one or more uppercase or lowercase letters, digits, spaces, commas, apostrophes ', periods, back slashes \\, forward slashes /, or hyphens - . - **birthPlaceState** (string): Birth place state can accept, One or more uppercase or lowercase letters, digits, spaces, commas, apostrophes ', or hyphens -. - **birthPlaceCountry** (string): Birth place country can accept, one or more uppercase or lowercase letters, digits, spaces, commas, apostrophes ', or hyphens -. ### Responses #### 200 - Confirmation status successfully retrieved. Possible return values if Veteran is "NOT CONFIRMED": - ERROR - MORE_RESEARCH_REQUIRED - NOT_TITLE_38 - PERSON_NOT_FOUND **VeteranStatusConfirmation** - **id** (string): Non-identifying text string (example: "(REDACTED)") - **veteran_status** (string (confirmed|not confirmed)): Whether the system could confirm the Veteran status of an individual based on traits ("confirmed"|"not confirmed") - **not_confirmed_reason** (string): Defines reason for a not confirmed status response. Possible values: - ERROR - MORE_RESEARCH_REQUIRED - NOT_TITLE_38 - PERSON_NOT_FOUND #### 400 - Bad request - invalid or missing query parameters **APIError** - **errors** (array (object)) Array items: - **title** (string) (example: "Error title") - **detail** (string) (example: "Detailed error message") - **code** (string) (example: "103") - **status** (string) (example: "400") #### 401 - Authorization information not provided - **message** (string) #### 403 - Invalid authorization - **message** (string) #### 413 - Payload too large - **message** (string) #### 429 - Too many requests - **message** (string) #### 500 - Internal server error **APIError** - **errors** (array (object)) Array items: - **title** (string) (example: "Error title") - **detail** (string) (example: "Detailed error message") - **code** (string) (example: "103") - **status** (string) (example: "400") #### 502 - Bad Gateway - Call to upstream service failed **APIError** - **errors** (array (object)) Array items: - **title** (string) (example: "Error title") - **detail** (string) (example: "Detailed error message") - **code** (string) (example: "103") - **status** (string) (example: "400") #### 503 - We encountered a temporary error. Check back in the future. **AuthorizationError** - **message** (string) (example: "No API key found in request") #### 504 - Gateway Timeout - **message** (string) ### Example Usage ```bash curl -X POST "https://sandbox-api.va.gov/services/veteran-confirmation/{version}/status" \ -H "Content-Type: application/json" \ -d '{ "gender": "string", "firstName": "string", "middleName": "string", "lastName": "string", "zipCode": "string", "city": "string", "state": "string", "country": "string", "birthDate": "2023-01-01", "streetAddressLine1": "string", "streetAddressLine2": "string", "streetAddressLine3": "string", "homePhoneNumber": "string", "mothersMaidenName": "string", "birthPlaceCity": "string", "birthPlaceState": "string", "birthPlaceCountry": "string" }' ``` ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.