openapi: 3.0.0 servers: - url: /rest/v2 info: x-logo: url: 'https://www.sheerid.com/wp-content/uploads/2019/11/SheerID_118x27.png' href: '/' backgroundColor: '#26c0db' altText: 'SheerID REST API Reference' description: | ## Introduction The SheerID API is organized around [REST](https://en.wikipedia.org/wiki/Representational_state_transfer). You can find a Postman collection of our APIs [here](https://www.postman.com/sheeridapi). ### Base URL The base URL for the SheerID REST API is `https://services.sheerid.com/rest/v2/`. ### API Versions The SheerID API utilizes URI versioning by including the version of the API in the URI path. For example: `https://services.sheerid.com/rest/{api_version}/` The API version reflects updates to API functionality (including minor and patch updates) that are not considered a breaking change. A breaking change would consist of the following: - Naming modifications to existing endpoints or request/response parameters - Removal of endpoints or request/response parameters - Addition of required request parameters - Altering response field data type - Changing HTTP method request for existing endpoints The following changes are not considered a breaking change. Clients should code defensively against the following potential changes: - Adding additional fields to response schema - Adding new optional request parameters - Adding new endpoints or HTTP methods on existing endpoints - Deprecating existing endpoints, parameters or response fields - Adding new values to an existing enumerated string type Breaking changes will be incorporated in a new API version. At most, we will support 2 major API versions concurrently. ### Authentication Certain endpoints require a Bearer Token for authentication. Retrieve your API access token from [MySheerID](https://my.sheerid.com) under *Settings* »» *Access Tokens*. There you will also find your Account ID, which you will need in certain conversion tracking operations. If you do not see the Access Tokens tab you need the API Access role added to your user. Please visit our Developer Center page on [roles and permissions](https://developer.sheerid.com/getting-started/account-setup#user-roles-and-permissions) to learn how Admins can edit user roles. ![SheerID Access Tokens](/assets/images/access-tokens.png) ```http GET /rest/v2/info HTTP/1.1 Content-Type: application/json Authorization: Bearer {YOUR_ACCESS_TOKEN} ``` ### A note about verifying Users can be verified via the API in 2 different ways: 1. One is to verify the user directly against a program with a single request. This is the most common way to verify users. An example of this is the request "Submit student data against program". 2. A second option is to first create a verification request, reserving a verificationId, and then use a second call to submit the verification, which can be done any time before the verification expires. You will see this scenario documented below starting with the "Begin verification flow" request, and continuing with a second request such as "Submit student data". The outcome of a verification is affected by whether the program is in Test Mode or not. Please [see this page](https://sheerid.zendesk.com/hc/en-us/articles/7540579090715) for more information. version: 2.0.0 title: SheerID API contact: email: productsupport@sheerid.com license: name: Apache 2.0 url: 'http://www.apache.org/licenses/LICENSE-2.0.html' paths: /info: get: tags: - info summary: Retrieve build information operationId: getBuildInformation responses: '200': description: 'Successful response' content: application/json: schema: $ref: '#/components/schemas/BuildInformationResponseMessage' '/verification/program/{programId}/step/collectStudentPersonalInfo': post: tags: - verification summary: Submit student data against program description: >- Using this endpoint starts a verification and submits personal info in one request, and is the equivalent to POSTing to `/verification` and then `/verification/{verificationId}/step/collectStudentPersonalInfo` operationId: submitStudentVerificationWithProgramId parameters: - in: path name: programId description: Unique identifier for the program to use for verification required: true schema: type: string responses: '200': description: The result of the verification content: application/json: schema: $ref: '#/components/schemas/VerificationResponse' examples: Student Success: $ref: '#/components/examples/studentSuccess' Student Document Upload: $ref: '#/components/examples/studentDocumentUpload' Student Document Rejected: $ref: '#/components/examples/studentDocumentRejected' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/VerificationResponse' examples: collectStudentInfoInvalid: $ref: '#/components/examples/studentCollectInfoInvalid' '403': description: Program not active, due to future start date or a past end date. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: programNotActive: $ref: '#/components/examples/programInactiveError' programExpired: $ref: '#/components/examples/programExpiredError' '404': description: Verification not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: verificationNotFound: $ref: '#/components/examples/errorVerificationNotFound' '429': description: User is not permitted to perform any more verifications due to the program's person limiting policies content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: studentVerificationLimitError: $ref: '#/components/examples/studentVerificationLimitError' requestBody: content: application/json: schema: $ref: '#/components/schemas/Student' example: firstName: Verify lastName: Smith birthDate: '1991-01-23' email: verify@test.com organization: id: 1234 name: Forsyth Technical Community College metadata: status: fulltime major: accounting description: >- The student and university data collected from the user to be verified required: true '/verification/program/{programId}/step/collectActiveMilitaryPersonalInfo': post: tags: - verification summary: Submit active military data against program description: >- Using this endpoint starts a verification and submits personal info in one request, and is the equivalent to POSTing to `/verification` and then `/verification/{verificationId}/step/collectActiveMilitaryPersonalInfo` operationId: submitActiveMilitaryVerificationWithProgramId parameters: - in: path name: programId description: Unique identifier for the program to use for verification required: true schema: type: string responses: '200': description: The result of the verification content: application/json: schema: $ref: '#/components/schemas/VerificationResponse' examples: Active Military Success: $ref: '#/components/examples/activeMilitaryWithProgramSuccess' Active Military Document Upload: $ref: '#/components/examples/activeMilitaryWithProgramDocumentUpload' Active Military Document Rejected: $ref: '#/components/examples/activeMilitaryWithProgramDocumentRejected' Continue To Social Security Number: $ref: '#/components/examples/militaryWithProgramContinueToSocialSecurityNumber' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/VerificationResponse' examples: activeMilitaryCollectInfo: $ref: '#/components/examples/activeMilitaryWithProgramCollectInfoInvalid' '403': description: Program not active, due to future start date or a past end date. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: programNotActive: $ref: '#/components/examples/programInactiveError' programExpired: $ref: '#/components/examples/programExpiredError' '404': description: Verification not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: verificationNotFound: $ref: '#/components/examples/errorVerificationNotFound' '429': description: User is not permitted to perform any more verifications due to the program's person limiting policies content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: activeMilitaryVerificationLimitError: $ref: '#/components/examples/activeMilitaryWithProgramVerificationLimitError' requestBody: content: application/json: schema: $ref: '#/components/schemas/ActiveMilitary' example: firstName: Verify lastName: Smith birthDate: '1991-12-04' email: verify@test.com organization: id: 4073 name: Air Force metadata: squadronName: 18th Aggressor Squadron squadronNickname: Blue Foxes description: >- The active military and branch of service data collected from the user to be verified required: true '/verification/program/{programId}/step/collectInactiveMilitaryPersonalInfo': post: tags: - verification summary: Submit inactive military data against program description: >- Using this endpoint starts a verification and submits personal info in one request, and is the equivalent to POSTing to `/verification` and then `/verification/{verificationId}/step/collectInactiveMilitaryPersonalInfo` operationId: submitInactiveMilitaryVerificationWithProgramId parameters: - in: path name: programId description: Unique identifier for the program to use for verification required: true schema: type: string responses: '200': description: The result of the verification content: application/json: schema: $ref: '#/components/schemas/VerificationResponse' examples: Inactive Military Success: $ref: '#/components/examples/inactiveMilitaryWithProgramSuccess' Inactive Military Document Upload: $ref: '#/components/examples/inactiveMilitaryWithProgramDocumentUpload' Inactive Military Document Rejected: $ref: '#/components/examples/inactiveMilitaryWithProgramDocumentRejected' Continue To Social Security Number: $ref: '#/components/examples/militaryWithProgramContinueToSocialSecurityNumber' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/VerificationResponse' examples: inactiveMilitaryCollectInfoInvalid: $ref: '#/components/examples/inactiveMilitaryWithProgramCollectInfoInvalid' '403': description: Program not active, due to future start date or a past end date. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: programNotActive: $ref: '#/components/examples/programInactiveError' programExpired: $ref: '#/components/examples/programExpiredError' '404': description: Verification not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: verificationNotFound: $ref: '#/components/examples/errorVerificationNotFound' '429': description: User is not permitted to perform any more verifications due to the program's person limiting policies content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: inactiveMilitaryVerificationLimitError: $ref: '#/components/examples/inactiveMilitaryWithProgramVerificationLimitError' requestBody: content: application/json: schema: $ref: '#/components/schemas/InactiveMilitary' example: firstName: Verify lastName: Smith birthDate: '1955-01-31' dischargeDate: '1991-06-21' email: verify@test.com organization: id: 4073 name: Air Force metadata: squadronName: USAF Air Demonstration Squadron squadronNickname: Thunderbirds description: >- The inactive duty and branch of service data collected from the user to be verified required: true '/verification/program/{programId}/step/collectTeacherPersonalInfo': post: tags: - verification summary: Submit teacher data against program description: >- Using this endpoint starts a verification and submits personal info in one request, and is the equivalent to POSTing to `/verification` and then `/verification/{verificationId}/step/collectTeacherPersonalInfo` operationId: submitTeacherVerificationWithProgramId parameters: - in: path name: programId description: Unique identifier for the program to use for verification required: true schema: type: string responses: '200': description: The result of the verification content: application/json: schema: $ref: '#/components/schemas/VerificationResponse' examples: Teacher Success: $ref: '#/components/examples/teacherSuccess' Teacher Document Upload: $ref: '#/components/examples/teacherDocumentUpload' Teacher Document Rejected: $ref: '#/components/examples/teacherDocumentRejected' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/VerificationResponse' examples: teacherCollectInfoInvalid: $ref: '#/components/examples/teacherCollectInfoInvalid' '403': description: Program not active, due to future start date or a past end date. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: programNotActive: $ref: '#/components/examples/programInactiveError' programExpired: $ref: '#/components/examples/programExpiredError' '404': description: Verification not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: verificationNotFound: $ref: '#/components/examples/errorVerificationNotFound' '429': description: User is not permitted to perform any more verifications due to the program's person limiting policies content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: teacherVerificationLimitError: $ref: '#/components/examples/teacherVerificationLimitError' requestBody: content: application/json: schema: $ref: '#/components/schemas/Teacher' example: firstName: Verify lastName: Smith birthDate: '1998-07-11' email: verify@test.com organization: id: 590759 name: Yale University metadata: gradeTaught: 11th honorsClass: false description: >- The teacher and school data collected from the user to be verified required: true '/verification/program/{programId}/step/collectSeniorPersonalInfo': post: tags: - verification summary: Submit senior data against program description: >- Using this endpoint starts a verification and submits personal info in one request, and is the equivalent to POSTing to `/verification` and then `/verification/{verificationId}/step/collectSeniorPersonalInfo` operationId: submitSeniorVerificationWithProgramId parameters: - in: path name: programId description: Unique identifier for the program to use for verification required: true schema: type: string responses: '200': description: The result of the verification content: application/json: schema: $ref: '#/components/schemas/VerificationResponse' examples: seniorSuccess: $ref: '#/components/examples/seniorSuccess' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/VerificationResponse' examples: seniorCollectInfoInvalid: $ref: '#/components/examples/seniorCollectInfoInvalid' '403': description: Program not active, due to future start date or a past end date. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: programNotActive: $ref: '#/components/examples/programInactiveError' programExpired: $ref: '#/components/examples/programExpiredError' '404': description: Verification not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: verificationNotFound: $ref: '#/components/examples/errorVerificationNotFound' '429': description: User is not permitted to perform any more verifications due to the program's person limiting policies content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: seniorVerificationLimitError: $ref: '#/components/examples/seniorVerificationLimitError' requestBody: content: application/json: schema: $ref: '#/components/schemas/Senior' example: firstName: Verify lastName: Smith birthDate: '1957-11-07' postalCode: '12345' email: verify@test.com metadata: senior: true gender: male description: The senior data collected from the user to be verified required: true '/verification/program/{programId}/step/collectAgePersonalInfo': post: tags: - verification summary: Submit age data against program description: >- Using this endpoint starts a verification and submits personal info in one request, and is the equivalent to POSTing to `/verification` and then `/verification/{verificationId}/step/collectAgePersonalInfo` operationId: submitAgeVerificationWithProgramId parameters: - in: path name: programId description: Unique identifier for the program to use for verification required: true schema: type: string responses: '200': description: The result of the verification content: application/json: schema: $ref: '#/components/schemas/VerificationResponse' examples: Age Success: $ref: '#/components/examples/ageSuccess' Age Document Upload: $ref: '#/components/examples/ageDocumentUpload' Age Document Rejected: $ref: '#/components/examples/ageDocumentRejected' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/VerificationResponse' examples: ageCollectInfoInvalid: $ref: '#/components/examples/ageCollectInfoInvalid' '403': description: Program not active, due to future start date or a past end date. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: programNotActive: $ref: '#/components/examples/programInactiveError' programExpired: $ref: '#/components/examples/programExpiredError' '404': description: Verification not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: verificationNotFound: $ref: '#/components/examples/errorVerificationNotFound' '429': description: User is not permitted to perform any more verifications due to the program's person limiting policies content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: ageVerificationLimitError: $ref: '#/components/examples/ageVerificationLimitError' requestBody: content: application/json: schema: $ref: '#/components/schemas/Age' example: firstName: Verify lastName: Smith birthDate: '1990-09-15' postalCode: '53207' email: verify@test.com phoneNumber: '5555555555' country: 'US' metadata: generation: millenial under18: false description: The age data collected from the user to be verified required: true '/verification/program/{programId}/step/collectFirstResponderPersonalInfo': post: tags: - verification summary: Submit first responder data against program description: >- Using this endpoint starts a verification and submits personal info in one request, and is the equivalent to POSTing to `/verification` and then `/verification/{verificationId}/step/collectFirstResponderPersonalInfo` operationId: submitFirstResponderVerificationWithProgramId parameters: - in: path name: programId description: Unique identifier for the program to use for verification required: true schema: type: string responses: '200': description: The result of the verification content: application/json: schema: $ref: '#/components/schemas/VerificationResponse' examples: First Responder Success: $ref: '#/components/examples/firstResponderSuccess' First Responder Document Upload: $ref: '#/components/examples/firstResponderDocumentUpload' First Responder Document Rejected: $ref: '#/components/examples/firstResponderDocumentRejected' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/VerificationResponse' examples: firstResponderCollectInfoInvalid: $ref: '#/components/examples/firstResponderCollectInfoInvalid' '403': description: Program not active, due to future start date or a past end date. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: programNotActive: $ref: '#/components/examples/programInactiveError' programExpired: $ref: '#/components/examples/programExpiredError' '404': description: Verification not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: verificationNotFound: $ref: '#/components/examples/errorVerificationNotFound' '429': description: User is not permitted to perform any more verifications due to the program's person limiting policies content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: firstResponderVerificationLimitError: $ref: '#/components/examples/firstResponderVerificationLimitError' requestBody: content: application/json: schema: $ref: '#/components/schemas/FirstResponder' example: firstName: Verify lastName: Smith birthDate: '1998-06-11' status: 'POLICE' email: verify@test.com organization: id: 616215 name: Yale Volunteer Fire Department metadata: rank: captain yearsService: 11 description: The first responder data collected from the user to be verified required: true '/verification/program/{programId}/step/collectLicensedProfessionalPersonalInfo': post: tags: - verification summary: Submit licensed professional data against program description: >- Using this endpoint starts a verification and submits personal info in one request, and is the equivalent to POSTing to `/verification` and then `/verification/{verificationId}/step/collectLicensedProfessionalPersonalInfo` operationId: submitLicensedProfessionalVerificationWithProgramId parameters: - in: path name: programId description: Unique identifier for the program to use for verification required: true schema: type: string responses: '200': description: The result of the verification content: application/json: schema: $ref: '#/components/schemas/VerificationResponse' examples: Licensed Professional Success: $ref: '#/components/examples/licensedProfessionalSuccess' Licensed Professional Document Upload: $ref: '#/components/examples/licensedProfessionalDocumentUpload' Licensed Professional Document Rejected: $ref: '#/components/examples/licensedProfessionalDocumentRejected' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/VerificationResponse' examples: licensedProfessionalCollectInfoInvalid: $ref: '#/components/examples/licensedProfessionalCollectInfoInvalid' '403': description: Program not active, due to future start date or a past end date. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: programNotActive: $ref: '#/components/examples/programInactiveError' programExpired: $ref: '#/components/examples/programExpiredError' '404': description: Verification not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: verificationNotFound: $ref: '#/components/examples/errorVerificationNotFound' '429': description: User is not permitted to perform any more verifications due to the program's person limiting policies content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: licensedProfessionalVerificationLimitError: $ref: '#/components/examples/licensedProfessionalVerificationLimitError' requestBody: content: application/json: schema: $ref: '#/components/schemas/LicensedProfessional' example: firstName: Verify lastName: Smith birthDate: '1991-01-11' statuses: [ 'LICENSED_COSMETOLOGIST' ] email: verify@test.com postalCode: '12345' organization: id: 0 name: Beauty Beholder metadata: specialty: colorist rank: master stylist description: The licensed professional data collected from the user to be verified required: true '/verification/program/{programId}/step/collectMoverPersonalInfo': post: tags: - verification summary: Submit recent mover data against program description: >- Using this endpoint starts a verification and submits personal info in one request, and is the equivalent to POSTing to `/verification` and then `/verification/{verificationId}/step/collectMoverPersonalInfo` operationId: submitMoverVerificationWithProgramId parameters: - in: path name: programId description: Unique identifier for the program to use for verification required: true schema: type: string responses: '200': description: The result of the verification content: application/json: schema: $ref: '#/components/schemas/VerificationResponse' examples: Recent Mover Success: $ref: '#/components/examples/moverSuccess' Mover Document Upload: $ref: '#/components/examples/moverDocumentUpload' Mover Document Rejected: $ref: '#/components/examples/moverDocumentRejected' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/VerificationResponse' examples: moverCollectInfoInvalid: $ref: '#/components/examples/moverCollectInfoInvalid' '403': description: Program not active, due to future start date or a past end date. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: programNotActive: $ref: '#/components/examples/programInactiveError' programExpired: $ref: '#/components/examples/programExpiredError' '404': description: Verification not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: verificationNotFound: $ref: '#/components/examples/errorVerificationNotFound' '429': description: User is not permitted to perform any more verifications due to the program's person limiting policies content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: moverVerificationLimitError: $ref: '#/components/examples/moverVerificationLimitError' requestBody: content: application/json: schema: $ref: '#/components/schemas/Mover' example: firstName: Verify lastName: Smith email: verify@test.com address1: 1111 A St postalCode: '12345' statuses: [ 'HOME_BUYER' ] metadata: homeBuyer: false otherMover: true description: The mover data collected from the user to be verified required: true '/verification/program/{programId}/step/collectMedicalProfessionalPersonalInfo': post: tags: - verification summary: Submit medical professional data against program description: >- Using this endpoint starts a verification and submits personal info in one request, and is the equivalent to POSTing to `/verification` and then `/verification/{verificationId}/step/collectMedicalProfessionalPersonalInfo` operationId: submitMedicalProfessionalVerificationWithProgramId parameters: - in: path name: programId description: Unique identifier for the program to use for verification required: true schema: type: string responses: '200': description: The result of the verification content: application/json: schema: $ref: '#/components/schemas/VerificationResponse' examples: Medical Professional Success: $ref: '#/components/examples/medicalProfessionalSuccess' Medical Professional Document Upload: $ref: '#/components/examples/medicalProfessionalDocumentUpload' Medical Professional Document Rejected: $ref: '#/components/examples/medicalProfessionalDocumentRejected' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/VerificationResponse' examples: medicalProfessionalCollectInfoInvalid: $ref: '#/components/examples/medicalProfessionalCollectInfoInvalid' '403': description: Program not active, due to future start date or a past end date. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: programNotActive: $ref: '#/components/examples/programInactiveError' programExpired: $ref: '#/components/examples/programExpiredError' '404': description: Verification not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: verificationNotFound: $ref: '#/components/examples/errorVerificationNotFound' '429': description: User is not permitted to perform any more verifications due to the program's person limiting policies content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: medicalProfessionalVerificationLimitError: $ref: '#/components/examples/medicalProfessionalVerificationLimitError' requestBody: content: application/json: schema: $ref: '#/components/schemas/MedicalProfessional' example: firstName: Verify lastName: Smith birthDate: '1990-09-25' status: 'NURSE' email: verify@test.com postalCode: '12345' organization: id: 651911 name: Yale-New Haven Hospital metadata: yearsService: 12 rank: RN description: The medical professional data collected from the user to be verified required: true '/verification/program/{programId}/step/collectDriverLicensePersonalInfo': post: tags: - verification summary: Submit driver license data against program description: Using this endpoint starts a verification and submits personal info in one request, and is the equivalent to POSTing to `/verification` and then `/verification/{verificationId}/step/collectDriverLicensePersonalInfo` operationId: submitDriverLicenseVerificationWithProgramId parameters: - in: path name: programId description: Unique identifier for the program to use for verification required: true schema: type: string responses: '200': description: The result of the verification content: application/json: schema: $ref: '#/components/schemas/VerificationResponse' examples: Driver License Success: $ref: '#/components/examples/driverLicenseSuccess' Driver License Document Upload: $ref: '#/components/examples/driverLicenseDocumentUpload' Driver License Document Rejected: $ref: '#/components/examples/driverLicenseDocumentRejected' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/VerificationResponse' examples: driverLicenseCollectInfoInvalid: $ref: '#/components/examples/driverLicenseCollectInfoInvalid' '403': description: Program not active, due to future start date or a past end date. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: programNotActive: $ref: '#/components/examples/programInactiveError' programExpired: $ref: '#/components/examples/programExpiredError' '404': description: Verification not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: verificationNotFound: $ref: '#/components/examples/errorVerificationNotFound' '429': description: User is not permitted to perform any more verifications due to the program's person limiting policies content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: driverLicenseVerificationLimitError: $ref: '#/components/examples/driverLicenseVerificationLimitError' requestBody: content: application/json: schema: $ref: '#/components/schemas/DriverLicense' example: firstName: Verify lastName: Smith state: OR driverLicenseNumber: 1234567 email: verify@test.com application/jose: schema: type: string description: The data collected from the user to be verified required: true '/verification/program/{programId}/step/collectGeneralIdentityPersonalInfo': post: tags: - verification summary: Submit general identity data against a program description: Using this endpoint starts a verification and submits personal info in one request, and is the equivalent to POSTing to `/verification` and then `/verification/{verificationId}/step/collectGeneralIdentityPersonalInfo` operationId: submitGeneralIdentityVerificationWithProgramId parameters: - in: path name: programId description: Unique identifier for the program to use for verification required: true schema: type: string responses: '200': description: The result of the verification content: application/json: schema: $ref: '#/components/schemas/VerificationResponse' examples: Success: $ref: '#/components/examples/generalIdentitySuccess' Document Upload: $ref: '#/components/examples/generalIdentityDocumentUpload' Document Rejected: $ref: '#/components/examples/generalIdentityDocumentRejected' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/VerificationResponse' examples: Invalid Input: $ref: '#/components/examples/generalIdentityCollectInfoInvalid' '403': description: Program not active, due to future start date or a past end date. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: programNotActive: $ref: '#/components/examples/programInactiveError' programExpired: $ref: '#/components/examples/programExpiredError' '404': description: Verification not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: Verification Not Found: $ref: '#/components/examples/errorVerificationNotFound' '429': description: User is not permitted to perform any more verifications due to the program's person limiting policies content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: Verification Limit Error: $ref: '#/components/examples/generalIdentityVerificationLimitError' requestBody: content: application/json: schema: $ref: '#/components/schemas/GeneralIdentity' example: firstName: 'Verify' lastName: 'Smith' birthDate: '1990-01-01' address1: '1 Main St' city: 'Eugene' state: 'OR' postalCode: '97000' email: 'verify@test.com' description: The data collected from the user to be verified required: true '/verification/program/{programId}/step/collectEmployeePersonalInfo': post: tags: - verification summary: Submit employee data against program description: >- Using this endpoint starts a verification and submits personal info in one request, and is the equivalent to POSTing to `/verification` and then `/verification/{verificationId}/step/collectEmployeePersonalInfo` operationId: submitEmployeeVerificationWithProgramId parameters: - in: path name: programId description: Unique identifier for the program to use for verification required: true schema: type: string responses: '200': description: The result of the verification content: application/json: schema: $ref: '#/components/schemas/VerificationResponse' examples: Employee Success: $ref: '#/components/examples/employeeSuccess' Employee Document Upload: $ref: '#/components/examples/employeeDocumentUpload' Employee Document Rejected: $ref: '#/components/examples/employeeDocumentRejected' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/VerificationResponse' examples: employeeCollectInfoInvalid: $ref: '#/components/examples/employeeCollectInfoInvalid' '403': description: Program not active, due to future start date or a past end date. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: programNotActive: $ref: '#/components/examples/programInactiveError' programExpired: $ref: '#/components/examples/programExpiredError' '404': description: Verification not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: verificationNotFound: $ref: '#/components/examples/errorVerificationNotFound' '429': description: User is not permitted to perform any more verifications due to the program's person limiting policies content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: employeeVerificationLimitError: $ref: '#/components/examples/employeeVerificationLimitError' requestBody: content: application/json: schema: $ref: '#/components/schemas/Employee' example: firstName: Verify lastName: Smith email: verify@test.com address1: '123 Main St' city: Anytown state: OR postalCode: '12345' organization: id: 309361 name: Hyster-Yale Group metadata: level: manager salary: 50000 description: The employee and company data collected from the user to be verified required: true '/verification/program/{programId}/step/collectMemberPersonalInfo': post: tags: - verification summary: Submit member data against program description: >- Using this endpoint starts a verification and submits personal info in one request, and is the equivalent to POSTing to `/verification` and then `/verification/{verificationId}/step/collectMemberPersonalInfo` operationId: submitMemberVerificationWithProgramId parameters: - in: path name: programId description: Unique identifier for the program to use for verification required: true schema: type: string responses: '200': description: The result of the verification content: application/json: schema: $ref: '#/components/schemas/VerificationResponse' examples: studentSuccess: $ref: '#/components/examples/memberSuccess' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/VerificationResponse' examples: memberCollectInfoInvalid: $ref: '#/components/examples/memberCollectInfoInvalid' '403': description: Program not active, due to future start date or a past end date. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: programNotActive: $ref: '#/components/examples/programInactiveError' programExpired: $ref: '#/components/examples/programExpiredError' '404': description: Verification not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: verificationNotFound: $ref: '#/components/examples/errorVerificationNotFound' '429': description: User is not permitted to perform any more verifications due to the program's person limiting policies content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: memberVerificationLimitError: $ref: '#/components/examples/memberVerificationLimitError' requestBody: content: application/json: schema: $ref: '#/components/schemas/Member' example: firstName: Verify lastName: Smith email: verify@test.com organization: id: 4101 name: AARP (Washington, DC) metadata: age: 67 state: DC description: >- The member data collected from the user to be verified required: true '/verification/program/{programId}/step/collectLowIncomePersonalInfo': post: tags: - verification summary: Submit low income personal data against program description: >- Using this endpoint starts a verification and submits personal info in one request, and is the equivalent to POSTing to `/verification` and then `/verification/{verificationId}/step/collectLowIncomePersonalInfo` operationId: submitLowIncomeVerificationWithProgramId parameters: - in: path name: programId description: Unique identifier for the program to use for verification required: true schema: type: string responses: '200': description: The result of the verification content: application/json: schema: $ref: '#/components/schemas/VerificationResponse' examples: Low Income Success: $ref: '#/components/examples/lowIncomeSuccess' Low Income Document Upload: $ref: '#/components/examples/lowIncomeDocumentUpload' Low Income Document Rejected: $ref: '#/components/examples/lowIncomeDocumentRejected' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/VerificationResponse' examples: lowIncomeCollectInfoInvalid: $ref: '#/components/examples/lowIncomeCollectInfoInvalid' '403': description: Program not active, due to future start date or a past end date. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: programNotActive: $ref: '#/components/examples/programInactiveError' programExpired: $ref: '#/components/examples/programExpiredError' '404': description: Verification not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: verificationNotFound: $ref: '#/components/examples/errorVerificationNotFound' '429': description: User is not permitted to perform any more verifications due to the program's person limiting policies content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: lowIncomeVerificationLimitError: $ref: '#/components/examples/lowIncomeVerificationLimitError' requestBody: content: application/json: schema: $ref: '#/components/schemas/LowIncome' example: country: US firstName: Verify lastName: Smith birthDate: '1998-05-01' address1: '123 Main St' city: 'Portland' state: 'OR' postalCode: '97222' phoneNumber: '5415551234' email: verify@test.com statuses: [ 'SNAP_BENEFITS' ] ebtCardNumber: '60048667812345678' metadata: lowIncome: true state: Oregon description: >- The low income personal data collected from the user to be verified required: true '/verification/{verificationId}': get: tags: - verification summary: Get verification status description: Get current state of a verification including the current step and submission URL if available operationId: getVerificationStatus parameters: - in: path name: verificationId description: Unique identifier for the ongoing verification required: true schema: type: string responses: '200': description: The current status for the verification content: application/json: schema: $ref: '#/components/schemas/VerificationResponse' examples: Success: $ref: '#/components/examples/studentSuccess' Collect Personal Info: $ref: '#/components/examples/studentCollectInfo' Document Upload: $ref: '#/components/examples/studentDocumentUpload' Document Rejected: $ref: '#/components/examples/studentDocumentRejected' Pending: $ref: '#/components/examples/pending' '404': description: Verification not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: verificationNotFound: $ref: '#/components/examples/errorVerificationNotFound' '429': description: >- User is not permitted to perform any more document uploads, or User is not permitted to perform any more verifications due to the program's person limiting policies content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: docReviewLimitExceeded: $ref: '#/components/examples/docReviewLimitExceededError' verificationLimitExceeded: $ref: '#/components/examples/studentVerificationLimitError' '/verification/program/{programId}/trackingId/{trackingId}': get: tags: - verification summary: Get verification status by Tracking ID description: Get current state of a verification including the current step and submission URL if available operationId: getVerificationStatusByTrackingId parameters: - in: path name: programId description: Unique identifier for the program that was used for the verification required: true schema: type: string - in: path name: trackingId description: Provided trackingId for the ongoing verification to search for required: true schema: type: string responses: '200': description: The current status for the verification content: application/json: schema: $ref: '#/components/schemas/VerificationResponse' examples: Success: $ref: '#/components/examples/studentSuccess' Collect Personal Info: $ref: '#/components/examples/studentCollectInfo' Document Upload: $ref: '#/components/examples/studentDocumentUpload' Document Rejected: $ref: '#/components/examples/studentDocumentRejected' Pending: $ref: '#/components/examples/pending' '404': description: Verification not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: verificationNotFound: $ref: '#/components/examples/errorVerificationNotFound' '429': description: User is not permitted to perform any more document uploads content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: docReviewLimitExceeded: $ref: '#/components/examples/docReviewLimitExceededError' '/verification/program/{programId}/trackingId/{trackingId}/history': get: tags: - verification summary: Get the 10 most recent verification statuses by Tracking ID description: Get list of verifications including the current step and submission URL if available by Tracking ID. Maximum of 10 verifications returned. operationId: getVerificationsByTrackingId parameters: - in: path name: programId description: Unique identifier for the program that was used for the verifications required: true schema: type: string - in: path name: trackingId description: Provided trackingId for the ongoing verifications to search for required: true schema: type: string responses: '200': description: The list of current verifications by Tracking ID content: application/json: schema: type: array items: $ref: '#/components/schemas/VerificationResponse' example: - verificationId: '111111111111111111111111' currentStep: success errorIds: [ ] segment: student subSegment: null locale: en-US country: US rewardCode: EXAMPLE-CODE redirectUrl: null - verificationId: '111111111111111111111111' currentStep: error errorIds: [ 'verificationLimitExceeded' ] systemErrorMessage: User has exceeded the maximum number of verifications segment: student subSegment: null locale: en-US '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/SystemErrorMessage' example: systemErrorMessage: Provided API token is empty or invalid '404': description: Verifications not found by Tracking ID content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: verificationNotFound: $ref: '#/components/examples/errorVerificationNotFound' security: - apiToken: [ ] '/verification/{verificationId}/details': get: tags: - verification summary: Get verification details description: Get detailed information about a verification. Requires an API token. operationId: getVerificationDetails parameters: - in: path name: verificationId description: Unique identifier for the ongoing verification required: true schema: type: string responses: '200': description: Detailed information about the verification content: application/json: schema: $ref: '#/components/schemas/VerificationDetails' examples: Success Verification Details: $ref: '#/components/examples/verificationDetailsSuccess' Document Upload Verification Details: $ref: '#/components/examples/verificationDetailsDocumentUpload' Document Rejected Verification Details: $ref: '#/components/examples/verificationDetailsDocumentRejected' Pending Verification Details: $ref: '#/components/examples/verificationDetailsPending' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/SystemErrorMessage' example: systemErrorMessage: Provided API token is empty or invalid '404': description: Verification not found content: application/json: schema: $ref: '#/components/schemas/SystemErrorMessage' example: systemErrorMessage: No verification found with id '111111111111111111111111' security: - apiToken: [ ] '/verification/{verificationId}/metadata': get: tags: - verification summary: Get verification metadata description: Get the metadata of a verification. Requires an API token. operationId: getVerificationMetadata parameters: - in: path name: verificationId description: Unique identifier for the ongoing verification required: true schema: type: string responses: '200': description: The metadata JSON object content: application/json: schema: $ref: '#/components/schemas/PersonalInfoMetadata' example: my: stuff goes: here '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/SystemErrorMessage' example: systemErrorMessage: Provided API token is empty or invalid '404': description: Verification not found content: application/json: schema: $ref: '#/components/schemas/SystemErrorMessage' example: systemErrorMessage: No verification found with id '111111111111111111111111' security: - apiToken: [ ] put: tags: - verification summary: Replace verification metadata description: Replace the metadata of an ongoing verification. Requires an API token. operationId: updateVerificationMetadata parameters: - in: path name: verificationId description: Unique identifier for the ongoing verification required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/PersonalInfoMetadata' example: key: value anotherKey: "another value" required: true responses: '200': description: The updated metadata JSON object content: application/json: schema: $ref: '#/components/schemas/PersonalInfoMetadata' example: key: value anotherKey: "another value" '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/SystemErrorMessage' example: systemErrorMessage: Provided API token is empty or invalid '404': description: Verification not found content: application/json: schema: $ref: '#/components/schemas/SystemErrorMessage' example: systemErrorMessage: No verification found with id '111111111111111111111111' security: - apiToken: [ ] '/verification/{verificationId}/refireWebhooks': post: tags: - verification summary: Refire verification webhook description: Refire the most recent webhook notifications for the verification request operationId: refireWebhooks parameters: - in: path name: verificationId description: Unique identifier for the verification required: true schema: type: string responses: '204': description: Webhooks were successfully refired '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/SystemErrorMessage' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/SystemErrorMessage' '404': description: Verification not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: verificationNotFound: $ref: '#/components/examples/errorVerificationNotFound' security: - apiToken: [ ] '/verification/{verificationId}/label/{label}': post: tags: - verification summary: Label a verification request description: Add a label to a verification request. Requires an API token. operationId: labelVerification parameters: - in: path name: verificationId description: Unique identifier for the verification required: true schema: type: string - in: path name: label description: A label for the verification request required: true schema: type: string enum: - suspectedFraud - confirmedFraud requestBody: content: application/json: schema: $ref: '#/components/schemas/LabelDetails' example: comment: Account flagged for violating Terms of Service description: >- Additional supporting details related to labeling the verification request required: false responses: '204': description: Verification was successfully labeled '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/SystemErrorMessage' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/SystemErrorMessage' '404': description: Verification not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: verificationNotFound: $ref: '#/components/examples/errorVerificationNotFound' security: - apiToken: [ ] '/verification/{verificationId}/barcode': get: tags: - verification summary: Retrieves a barcode image for a given reward code description: >- Retrieves a barcode image for a given reward code, if the verification is in the proper state and has reward codes operationId: getBarcodeForReward parameters: - in: path name: verificationId description: Unique identifier for the verification required: true schema: type: string - in: query name: rewardKey description: The reward key for this reward. The default value for programs with a single reward is rewardCode. required: true schema: type: string - in: query name: symbology description: Barcode type required: true schema: type: string responses: '200': description: Reward code image content: image/*: schema: type: string format: binary '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/SystemErrorMessage' '404': description: Verification or reward code not found content: application/json: schema: $ref: '#/components/schemas/SystemErrorMessage' examples: verificationNotFound: $ref: '#/components/examples/errorVerificationNotFound' /verification/{verificationId}/purgePersonData: post: tags: - verification summary: Purge personal data (PII) from a verification description: >- Submit a request to purge the personal data (PII) from the provided verification, and expire it if it isn't already. Requires an API token. User must have "Account Owner" or "Customer Service Manager" role, and must be a member of the account that the verification belongs to. The purge and expire operations are asynchronous; in most cases it will be completed within 5 minutes. operationId: purgeVerificationPersonData parameters: - in: path name: verificationId description: Unique identifier for the verification required: true schema: type: string responses: '200': description: The purge request has been accepted. content: application/json: schema: type: object description: Empty object (properties may be added in the future) '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/SystemErrorMessage' example: systemErrorMessage: Provided API token is empty or invalid '404': description: Verification not found content: application/json: schema: $ref: '#/components/schemas/SystemErrorMessage' example: systemErrorMessage: Verification with ID '111111111111111111111111' not found security: - apiToken: [ ] /verification/{verificationId}/resetVerificationLimits: post: tags: - verification summary: Reset the limits for the provided verification. description: >- Submit a request to reset the verification limits for the provided verification. Requires an API token. User must have "Account Owner" or "Customer Service Manager" role, and must be a member of the account that the verification belongs to. operationId: resetVerificationLimits parameters: - in: path name: verificationId description: Unique identifier for the verification required: true schema: type: string responses: '200': description: The reset request has been accepted. content: application/json: schema: type: object description: Empty object (properties may be added in the future) '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/SystemErrorMessage' example: systemErrorMessage: Provided API token is empty or invalid '404': description: Verification not found content: application/json: schema: $ref: '#/components/schemas/SystemErrorMessage' example: systemErrorMessage: Verification with ID '111111111111111111111111' not found security: - apiToken: [ ] /verification/{verificationId}/rememberMeCallToAction: get: tags: - verification summary: Stores consumer info more permanently description: >- Only for verifications with Remember Me enabled. After verification success, this endpoint can be used to determine what fields were collected during verification so that the consumer can be informed about which fields will be saved should they elect to have their information stored for future verifications. This is often followed by a POST to `/verification/{verificationId]/rememberConsumer` operationId: rememberMeCallToAction parameters: - in: path name: verificationId description: Unique identifier for the verification required: true schema: type: string responses: '200': description: The request has been accepted. content: application/json: schema: $ref: '#/components/schemas/RememberMeCallToActionResponse' example: verificationId: '111111111111111111111111' alreadyRemembered: true collectedInformation: collectedFields: ['firstName', 'idNumber'] organization: id: 1234 name: Forsyth Technical Community College '404': description: Verification not found content: application/json: schema: $ref: '#/components/schemas/SystemErrorMessage' example: systemErrorMessage: Verification with ID '111111111111111111111111' not found /verification/{verificationId}/rememberConsumer: post: tags: - verification summary: Stores consumer info more permanently description: >- Only for verifications with Remember Me enabled. Stores consumer info associated with the verification to be used for future verifications. Requires consent from consumer indicated in the request body. operationId: rememberConsumer parameters: - in: path name: verificationId description: Unique identifier for the verification required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/RememberConsumerRequest' description: Consent values provided by the consumer. required: true responses: '200': description: The request has been accepted. '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/SystemErrorMessage' example: systemErrorMessage: Consumer must consent in order to be remembered. '404': description: Verification not found content: application/json: schema: $ref: '#/components/schemas/SystemErrorMessage' example: systemErrorMessage: Verification with ID '111111111111111111111111' not found '/program/{programId}/theme': get: tags: - program summary: Get program theme description: Get the theme data (messages and CSS) for a program operationId: getProgramTheme parameters: - in: path name: programId description: Unique identifier for the program required: true schema: type: string - in: query name: locale description: Optionally override locale to use for translations (defaults to using locale with HTTP request) required: false schema: type: string responses: '200': description: The theme data for a program content: application/json: schema: $ref: '#/components/schemas/ProgramTheme' '404': description: Program not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' example: systemErrorMessage: Program with ID '222222222222222222222222' not found '/program/{programId}/possibleSteps': get: tags: - program summary: Get the verification steps the given program may encounter in the verification flow. description: Get the verification steps the given program may encounter in the verification flow. operationId: getPossibleSteps parameters: - in: path name: programId description: Unique identifier for the program required: true schema: type: string responses: '200': description: The possible steps for a program content: application/json: schema: $ref: '#/components/schemas/PossibleStepsResponse' '404': description: Program not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' example: systemErrorMessage: Program with ID '222222222222222222222222' not found '/program/{programId}/organization': get: tags: - program summary: Get organization description: This endpoint has been deprecated, please use `orgSearchUrl` in ProgramVerificationConfig instead. operationId: getOrganizations deprecated: true parameters: - in: query name: name description: All or part of the organization name to use for search required: true schema: type: string - in: query name: country description: An optional country to use for filtering which orgs to show required: false schema: type: string - in: path name: programId description: The unique identifier for the program being used for the verification required: true schema: type: string responses: '200': description: The list of Organizations matching the search content: application/json: schema: type: array items: $ref: '#/components/schemas/Organization' example: id: 1234 name: Organization Name '404': description: Program not found content: application/json: schema: $ref: '#/components/schemas/SystemErrorMessage' example: systemErrorMessage: Program with ID '222222222222222222222222' not found '/program/{programId}/verificationLimit': post: tags: - program summary: Establish verification limit description: Create a verification limit for a given program operationId: createVerificationLimit parameters: - in: path name: programId description: Unique identifier for the program required: true schema: type: string responses: '200': description: The current available data for a program content: application/json: schema: $ref: '#/components/schemas/ProgramConfig' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/SystemErrorMessage' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/SystemErrorMessage' '404': description: Program not found content: application/json: schema: $ref: '#/components/schemas/SystemErrorMessage' example: systemErrorMessage: Program with ID '222222222222222222222222' not found '409': description: Verification limit already exists content: application/json: schema: $ref: '#/components/schemas/SystemErrorMessage' requestBody: content: application/json: schema: $ref: '#/components/schemas/VerificationLimitRequest' description: The create verification limit request required: true security: - apiToken: [ ] delete: tags: - program summary: Delete verification limit description: Delete verification limit for a given program operationId: deleteVerificationLimit parameters: - in: path name: programId description: Unique identifier for the program required: true schema: type: string responses: '200': description: The current available data for a program content: application/json: schema: $ref: '#/components/schemas/ProgramConfig' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/SystemErrorMessage' '404': description: Program not found content: application/json: schema: $ref: '#/components/schemas/SystemErrorMessage' security: - apiToken: [ ] '/program/{programId}/webhook': post: tags: - program summary: Create verification webhook description: Create a webhook for any verifications done using the given program operationId: createWebhook parameters: - in: path name: programId description: Unique identifier for the program required: true schema: type: string responses: '200': description: The current available data for a program content: application/json: schema: $ref: '#/components/schemas/ProgramConfig' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/SystemErrorMessage' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/SystemErrorMessage' '404': description: Program not found content: application/json: schema: $ref: '#/components/schemas/SystemErrorMessage' '409': description: Webhook already exists content: application/json: schema: $ref: '#/components/schemas/SystemErrorMessage' requestBody: content: application/json: schema: $ref: '#/components/schemas/WebhookRequest' description: The create webhook request required: true security: - apiToken: [ ] delete: tags: - program summary: Delete verification webhook description: Delete the webhook for any verifications done using the given program operationId: deleteWebhook parameters: - in: path name: programId description: Unique identifier for the program required: true schema: type: string responses: '200': description: The current available data for a program content: application/json: schema: $ref: '#/components/schemas/ProgramConfig' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/SystemErrorMessage' '404': description: Program not found content: application/json: schema: $ref: '#/components/schemas/SystemErrorMessage' security: - apiToken: [ ] '/program/{programId}/sendLink': post: tags: - program summary: Sends a link to the program description: Sends a link to the program to the target operationId: sendLink parameters: - in: path name: programId description: Unique identifier for the program required: true schema: type: string responses: '204': description: The send link request was submitted successfully '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/SystemErrorMessage' '404': description: Program not found content: application/json: schema: $ref: '#/components/schemas/SystemErrorMessage' requestBody: content: application/json: schema: $ref: '#/components/schemas/SendLinkRequest' description: The send link request bodoy required: true security: - apiToken: [ ] '/report/verification': post: operationId: generateVerificationReport tags: - report summary: Generate a verification report description: Generate a verification report which can be downloaded later requestBody: content: application/json: schema: $ref: '#/components/schemas/VerificationReportRequest' example: startDate: '2000-12-25' endDate: '2000-12-31' format: CSV isPiiIncluded: true piiReason: 'PII request reason' responses: '202': description: Accepted content: application/json: schema: $ref: '#/components/schemas/ReportStatusResponse' examples: reportStatusResponsePending: $ref: '#/components/examples/reportStatusResponsePending' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/SystemErrorMessage' example: systemErrorMessage: Provided API token is empty or invalid security: - apiToken: [ ] '/report/reverify/{batchId}': post: operationId: generateReverificationReport tags: - report summary: Generate verification report for re-verification task description: Generate a verification report for a re-verification task which can be downloaded later parameters: - in: path name: batchId description: The ID of the re-verification task required: true schema: type: string responses: '202': description: Accepted content: application/json: schema: $ref: '#/components/schemas/ReportStatusResponse' example: reportStatusResponsePending: $ref: '#/components/examples/reportStatusResponsePending' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/SystemErrorMessage' example: systemErrorMessage: Provided API token is empty or invalid security: - apiToken: [ ] '/report/{reportId}/status': get: operationId: getReportStatus tags: - report summary: Retrieve report generation status description: Retrieve report generation status by report ID parameters: - in: path name: reportId description: Unique identifier of Report to retrieve required: true schema: type: string responses: '200': description: Information indicating whether the report is ready for download yet, or not. content: application/json: schema: $ref: '#/components/schemas/ReportStatusResponse' examples: reportStatusResponseComplete: $ref: '#/components/examples/reportStatusResponseComplete' '401': content: application/json: schema: $ref: '#/components/schemas/SystemErrorMessage' description: Unauthorized '404': content: application/json: schema: $ref: '#/components/schemas/SystemErrorMessage' description: No report found having the supplied ID security: - apiToken: [ ] '/report/{reportId}': get: operationId: getReportData tags: - report summary: Download report description: Retrieve data for a previously-generated report parameters: - in: path name: reportId description: Unique identifier of Report to retrieve required: true schema: type: string responses: '200': description: Successful retrieval of report data '202': description: 'Report is still being generated and is not ready yet' '401': content: application/json: schema: $ref: '#/components/schemas/SystemErrorMessage' description: Unauthorized '404': content: application/json: schema: $ref: '#/components/schemas/SystemErrorMessage' description: No report found having the supplied ID '410': content: application/json: schema: $ref: '#/components/schemas/SystemErrorMessage' description: The requested report has been deleted/purged security: - apiToken: [ ] /report/fields: get: tags: - report summary: List reporting fields description: Retrieve a list of reporting fields available to the user's account and the programs requested operationId: listReportFields parameters: - in: query name: programIds description: List of program ids for which to retrieve metadata keys. If none are specified all programs under the user's account are included. schema: type: array items: type: string responses: "200": description: A list of reporting fields organized by scope. content: application/json: schema: type: array items: $ref: "#/components/schemas/ReportFieldSet" "400": content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: Bad Request - one or more of the requested program ids is invalid. "401": description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: invalidTokenError: $ref: '#/components/examples/invalidTokenError' security: - apiToken: [ ] '/conversion/verification/{verificationId}': post: tags: - conversion summary: Store conversion information description: Store conversion information operationId: storeVerificationConversion parameters: - in: path name: verificationId description: The ID of the verification to correlate the conversion info to required: true schema: type: string responses: '200': description: The result content: application/json: schema: $ref: '#/components/schemas/ConversionResponse' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/SystemErrorMessage' '404': description: Verification not found content: application/json: schema: $ref: '#/components/schemas/SystemErrorMessage' requestBody: content: application/json: schema: $ref: '#/components/schemas/ConversionRequest' description: >- The conversion information required: true '/conversion/account/{accountId}/trackingId/{trackingId}': post: tags: - conversion summary: Store conversion information by Tracking ID description: Store conversion information based on a tracking ID provided with the NewVerificationRequest when creating a verification operationId: storeVerificationConversionByTrackingId parameters: - in: path name: accountId description: Unique identifier for the account that made the conversion required: true schema: type: string - in: path name: trackingId description: The "Tracking ID" supplied when the verification was created required: true schema: type: string responses: '200': description: The result content: application/json: schema: $ref: '#/components/schemas/ConversionResponse' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/SystemErrorMessage' '404': description: Account or trackingId not found content: application/json: schema: $ref: '#/components/schemas/SystemErrorMessage' requestBody: content: application/json: schema: $ref: '#/components/schemas/ConversionRequest' description: >- The conversion information required: true /organization/addSchool: post: tags: - addSchool summary: Submit an add school request description: Submit an add school request operationId: submitAddSchoolRequest responses: '204': description: The add school request was submitted successfully '400': description: The add school request was not properly formatted content: application/json: schema: $ref: '#/components/schemas/SystemErrorMessage' '404': description: The provided program was not found content: application/json: schema: $ref: '#/components/schemas/SystemErrorMessage' '429': description: Too many add school requests for the given program content: application/json: schema: $ref: '#/components/schemas/SystemErrorMessage' requestBody: content: application/json: schema: $ref: '#/components/schemas/AddSchoolRequest' description: The add school request required: true /organization/addSchool/search/domain: post: tags: - addSchool summary: Search for eligible schools by domain name as part of the add school flow description: Search for eligible schools by domain name as part of the add school flow operationId: searchForEligibleSchoolsByDomain responses: '200': description: The results of the search content: application/json: schema: $ref: '#/components/schemas/EligibleSchoolSearchResult' '400': description: The search was not properly formatted content: application/json: schema: $ref: '#/components/schemas/SystemErrorMessage' '404': description: The provided program was not found content: application/json: schema: $ref: '#/components/schemas/SystemErrorMessage' requestBody: content: application/json: schema: $ref: '#/components/schemas/EligibleSchoolDomainSearch' required: true /organization/addSchool/search/name: post: tags: - addSchool summary: Search for eligible schools by name as part of the add school flow description: Search for eligible schools by name as part of the add school flow operationId: searchForEligibleSchoolsByName responses: '200': description: The results of the search content: application/json: schema: $ref: '#/components/schemas/EligibleSchoolSearchResult' '400': description: The search was not properly formatted content: application/json: schema: $ref: '#/components/schemas/SystemErrorMessage' '404': description: The provided program was not found content: application/json: schema: $ref: '#/components/schemas/SystemErrorMessage' requestBody: content: application/json: schema: $ref: '#/components/schemas/EligibleSchoolNameSearch' required: true /verification: post: tags: - verification summary: Begin verification flow description: Start the verification flow for a given program operationId: newVerification responses: '200': description: The initial information required to render the verification form content: application/json: schema: $ref: '#/components/schemas/NewVerificationResponse' examples: collectStudentInfo: $ref: '#/components/examples/studentCollectInfo' '403': description: Program not active, due to future start date or a past end date. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: programNotActive: $ref: '#/components/examples/programInactiveError' programExpired: $ref: '#/components/examples/programExpiredError' '404': description: Program not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: programNotFound: $ref: '#/components/examples/programNotFoundError' '409': description: No reward codes remaining for program content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: noRemainingRewardCodes: $ref: '#/components/examples/errorNoRemainingRewardCodes' requestBody: content: application/json: schema: $ref: '#/components/schemas/NewVerificationRequest' example: programId: '222222222222222222222222' description: The request to retrieve a verification configuration for a given program required: true /verification/{verificationId}/expire: post: tags: - verification summary: Expire the provided verification. description: Expire the provided verification. Used when abandoning a verification attempt. operationId: expireVerification parameters: - in: path name: verificationId description: Unique identifier for the ongoing verification required: true schema: type: string responses: '200': description: The new status of the verification content: application/json: schema: $ref: '#/components/schemas/VerificationResponse' examples: Expired Request With Consolation: $ref: '#/components/examples/consolation' Expired Request No Consolation: $ref: '#/components/examples/errorExpiredVerification' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/VerificationResponse' '404': description: Verification not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: verificationNotFound: $ref: '#/components/examples/errorVerificationNotFound' '/verification/{verificationId}/step/collectPersonalInfo': post: tags: - verification summary: Submit data to a Remember Me enabled program description: Submit consumer data for a verification on a Remember Me enabled program operationId: submitPersonalInfoVerification parameters: - in: path name: verificationId description: Unique identifier for the ongoing verification required: true schema: type: string responses: '200': description: The result of the verification content: application/json: schema: $ref: '#/components/schemas/VerificationResponse' examples: Student Success: $ref: '#/components/examples/studentSuccess' Student Document Upload: $ref: '#/components/examples/studentDocumentUpload' Student Document Rejected: $ref: '#/components/examples/studentDocumentRejected' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/VerificationResponse' examples: collectPersonalInfoInvalid: $ref: '#/components/examples/collectPersonalInfoInvalid' '404': description: Verification not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: verificationNotFound: $ref: '#/components/examples/errorVerificationNotFound' '429': description: User is not permitted to perform any more verifications due to the program's person limiting policies content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: studentVerificationLimitError: $ref: '#/components/examples/studentVerificationLimitError' requestBody: content: application/json: schema: $ref: '#/components/schemas/GenericVerificationSubject' example: firstName: Verify lastName: Smith birthDate: '1991-01-23' email: verify@test.com organization: id: 1234 name: Forsyth Technical Community College metadata: status: fulltime major: accounting description: >- The personal info collected from the user to be combined with the stored consumer info to be verified required: true '/verification/{verificationId}/step/collectStudentPersonalInfo': post: tags: - verification summary: Submit student data description: Submit data for a student verification operationId: submitStudentVerification parameters: - in: path name: verificationId description: Unique identifier for the ongoing verification required: true schema: type: string responses: '200': description: The result of the verification content: application/json: schema: $ref: '#/components/schemas/VerificationResponse' examples: Student Success: $ref: '#/components/examples/studentSuccess' Student Document Upload: $ref: '#/components/examples/studentDocumentUpload' Student Document Rejected: $ref: '#/components/examples/studentDocumentRejected' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/VerificationResponse' examples: collectStudentInfoInvalid: $ref: '#/components/examples/studentCollectInfoInvalid' '404': description: Verification not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: verificationNotFound: $ref: '#/components/examples/errorVerificationNotFound' '429': description: User is not permitted to perform any more verifications due to the program's person limiting policies content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: studentVerificationLimitError: $ref: '#/components/examples/studentVerificationLimitError' requestBody: content: application/json: schema: $ref: '#/components/schemas/Student' example: firstName: Verify lastName: Smith birthDate: '1991-01-23' email: verify@test.com organization: id: 1234 name: Forsyth Technical Community College metadata: status: fulltime major: accounting description: >- The student and university data collected from the user to be verified required: true '/verification/{verificationId}/step/collectMilitaryStatus': post: tags: - verification summary: Submit military status description: Submit military status to determine which kind of military verification to perform operationId: submitMilitaryStatus parameters: - in: path name: verificationId description: Unique identifier for the program to use for verification required: true schema: type: string responses: '200': description: The next step to perform in the verification flow content: application/json: schema: $ref: '#/components/schemas/VerificationResponse' examples: activeMilitaryCollectInfo: $ref: '#/components/examples/activeMilitaryCollectInfo' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/VerificationResponse' examples: militaryCollectStatusInvalid: $ref: '#/components/examples/militaryCollectStatusInvalid' '404': description: Verification not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: verificationNotFound: $ref: '#/components/examples/errorVerificationNotFound' requestBody: content: application/json: schema: $ref: '#/components/schemas/MilitaryStatusRequest' description: The status of the military member being verified required: true '/verification/{verificationId}/step/collectActiveMilitaryPersonalInfo': post: tags: - verification summary: Submit active military data description: Submit data for an active military verification operationId: submitActiveMilitaryVerification parameters: - in: path name: verificationId description: Unique identifier for the ongoing verification required: true schema: type: string responses: '200': description: The result of the verification content: application/json: schema: $ref: '#/components/schemas/VerificationResponse' examples: Active Military Success: $ref: '#/components/examples/activeMilitarySuccess' Active Military Document Upload: $ref: '#/components/examples/activeMilitaryDocumentUpload' Active Military Document Rejected: $ref: '#/components/examples/activeMilitaryDocumentRejected' Continue To Social Security Number: $ref: '#/components/examples/militaryContinueToSocialSecurityNumber' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/VerificationResponse' examples: activeMilitaryCollectInfoInvalid: $ref: '#/components/examples/activeMilitaryCollectInfoInvalid' '404': description: Verification not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: verificationNotFound: $ref: '#/components/examples/errorVerificationNotFound' '429': description: User is not permitted to perform any more verifications due to the program's person limiting policies content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: activeMilitaryVerificationLimitError: $ref: '#/components/examples/activeMilitaryVerificationLimitError' requestBody: content: application/json: schema: $ref: '#/components/schemas/ActiveMilitary' example: firstName: Verify lastName: Smith birthDate: '1991-12-04' email: verify@test.com organization: id: 4073 name: Air Force metadata: squadronName: 18th Aggressor Squadron squadronNickname: Blue Foxes description: >- The active military and branch of service data collected from the user to be verified required: true '/verification/{verificationId}/step/collectInactiveMilitaryPersonalInfo': post: tags: - verification summary: Submit inactive military data description: Submit data for an inactive military verification operationId: submitInactiveMilitaryVerification parameters: - in: path name: verificationId description: Unique identifier for the ongoing verification required: true schema: type: string responses: '200': description: The result of the verification content: application/json: schema: $ref: '#/components/schemas/VerificationResponse' examples: Inactive Military Success: $ref: '#/components/examples/inactiveMilitarySuccess' Inactive Military Document Upload: $ref: '#/components/examples/inactiveMilitaryDocumentUpload' Inactive Military Document Rejected: $ref: '#/components/examples/inactiveMilitaryDocumentRejected' Continue To Social Security Number: $ref: '#/components/examples/militaryContinueToSocialSecurityNumber' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/VerificationResponse' examples: inactiveMilitaryCollectInfoInvalid: $ref: '#/components/examples/inactiveMilitaryCollectInfoInvalid' '404': description: Verification not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: verificationNotFound: $ref: '#/components/examples/errorVerificationNotFound' '429': description: User is not permitted to perform any more verifications due to the program's person limiting policies content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: inactiveMilitaryVerificationLimitError: $ref: '#/components/examples/inactiveMilitaryVerificationLimitError' requestBody: content: application/json: schema: $ref: '#/components/schemas/InactiveMilitary' example: firstName: Verify lastName: Smith birthDate: '1955-01-31' dischargeDate: '1991-06-21' email: verify@test.com organization: id: 4073 name: Air Force metadata: squadronName: USAF Air Demonstration Squadron squadronNickname: Thunderbirds description: >- The inactive duty and branch of service data collected from the user to be verified required: true '/verification/{verificationId}/step/collectSocialSecurityNumber': post: tags: - verification summary: Submit Social Security Number description: >- Submit social security number for military verification. See `DELETE` for documentation about on how to skip this step. operationId: submitSocialSecurityNumber parameters: - in: path name: verificationId description: Unique identifier for the ongoing verification required: true schema: type: string responses: '200': description: The result of the verification content: application/json: schema: $ref: '#/components/schemas/VerificationResponse' example: $ref: '#/components/examples/socialSecurityNumberSuccess' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/VerificationResponse' example: $ref: '#/components/examples/socialSecurityNumberInvalid' '404': description: Verification not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '429': description: User is not permitted to perform any more verifications due to the program's person limiting policies content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' requestBody: content: application/json: schema: $ref: '#/components/schemas/SocialSecurityNumberRequest' example: socialSecurityNumber: 111223333 description: The social security number of the person to be verified required: true delete: tags: - verification summary: Skip submission of Social Security Number description: Skip submission of Social Security Number and proceed Doc Upload operationId: skipSocialSecurityNumber parameters: - in: path name: verificationId description: Unique identifier for the ongoing verification required: true schema: type: string responses: '200': description: The result of the verification content: application/json: schema: $ref: '#/components/schemas/VerificationResponse' example: $ref: '#/components/examples/socialSecurityNumberCancelled' '404': description: Verification not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: verificationNotFound: $ref: '#/components/examples/errorVerificationNotFound' '/verification/{verificationId}/step/collectTeacherPersonalInfo': post: tags: - verification summary: Submit teacher data description: Submit data for a teacher verification operationId: submitTeacherVerification parameters: - in: path name: verificationId description: Unique identifier for the ongoing verification required: true schema: type: string responses: '200': description: The result of the verification content: application/json: schema: $ref: '#/components/schemas/VerificationResponse' examples: Teacher Success: $ref: '#/components/examples/teacherSuccess' Teacher Document Upload: $ref: '#/components/examples/teacherDocumentUpload' Teacher Document Rejected: $ref: '#/components/examples/teacherDocumentRejected' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/VerificationResponse' examples: teacherCollectInfoInvalid: $ref: '#/components/examples/teacherCollectInfoInvalid' '404': description: Verification not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: verificationNotFound: $ref: '#/components/examples/errorVerificationNotFound' '429': description: User is not permitted to perform any more verifications due to the program's person limiting policies content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: teacherVerificationLimitError: $ref: '#/components/examples/teacherVerificationLimitError' requestBody: content: application/json: schema: $ref: '#/components/schemas/Teacher' example: firstName: Verify lastName: Smith birthDate: '1991-01-01' email: verify@test.com organization: id: 590759 name: Yale University metadata: gradeTaught: 11th honorsClass: false description: >- The teacher and school data collected from the user to be verified required: true '/verification/{verificationId}/step/collectSeniorPersonalInfo': post: tags: - verification summary: Submit senior data description: Submit data for a senior verification operationId: submitSeniorVerification parameters: - in: path name: verificationId description: Unique identifier for the ongoing verification required: true schema: type: string responses: '200': description: The result of the verification content: application/json: schema: $ref: '#/components/schemas/VerificationResponse' examples: seniorSuccess: $ref: '#/components/examples/seniorSuccess' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/VerificationResponse' examples: seniorCollectInfoInvalid: $ref: '#/components/examples/seniorCollectInfoInvalid' '404': description: Verification not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: verificationNotFound: $ref: '#/components/examples/errorVerificationNotFound' '429': description: User is not permitted to perform any more verifications due to the program's person limiting policies content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: seniorVerificationLimitError: $ref: '#/components/examples/seniorVerificationLimitError' requestBody: content: application/json: schema: $ref: '#/components/schemas/Senior' example: firstName: Verify lastName: Smith birthDate: '1957-11-07' postalCode: '12345' email: verify@test.com metadata: senior: true gender: male description: The senior data collected from the user to be verified required: true '/verification/{verificationId}/step/collectAgePersonalInfo': post: tags: - verification summary: Submit age data description: Submit data for an age verification operationId: submitAgeVerification parameters: - in: path name: verificationId description: Unique identifier for the ongoing verification required: true schema: type: string responses: '200': description: The result of the verification content: application/json: schema: $ref: '#/components/schemas/VerificationResponse' examples: Age Success: $ref: '#/components/examples/ageSuccess' Age Document Upload: $ref: '#/components/examples/ageDocumentUpload' Age Document Rejected: $ref: '#/components/examples/ageDocumentRejected' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/VerificationResponse' examples: ageCollectInfoInvalid: $ref: '#/components/examples/ageCollectInfoInvalid' '404': description: Verification not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: verificationNotFound: $ref: '#/components/examples/errorVerificationNotFound' '429': description: User is not permitted to perform any more verifications due to the program's person limiting policies content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: ageVerificationLimitError: $ref: '#/components/examples/ageVerificationLimitError' requestBody: content: application/json: schema: $ref: '#/components/schemas/Age' example: firstName: Verify lastName: Smith birthDate: '1991-01-01' postalCode: '12345' email: verify@test.com phoneNumber: '5555555555' country: 'US' metadata: generation: millenial under18: false description: The age data collected from the user to be verified required: true '/verification/{verificationId}/step/collectFirstResponderPersonalInfo': post: tags: - verification summary: Submit first responder data description: Submit data for a first responder verification operationId: submitFirstResponderVerification parameters: - in: path name: verificationId description: Unique identifier for the ongoing verification required: true schema: type: string responses: '200': description: The result of the verification content: application/json: schema: $ref: '#/components/schemas/VerificationResponse' examples: First Responder Success: $ref: '#/components/examples/firstResponderSuccess' First Responder Document Upload: $ref: '#/components/examples/firstResponderDocumentUpload' First Responder Document Rejected: $ref: '#/components/examples/firstResponderDocumentRejected' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/VerificationResponse' examples: firstResponderCollectInfoInvalid: $ref: '#/components/examples/firstResponderCollectInfoInvalid' '404': description: Verification not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: verificationNotFound: $ref: '#/components/examples/errorVerificationNotFound' '429': description: User is not permitted to perform any more verifications due to the program's person limiting policies content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: firstResponderVerificationLimitError: $ref: '#/components/examples/firstResponderVerificationLimitError' requestBody: content: application/json: schema: $ref: '#/components/schemas/FirstResponder' example: firstName: Verify lastName: Smith birthDate: '1991-01-01' status: 'POLICE' email: verify@test.com organization: id: 616215 name: Yale Volunteer Fire Department metadata: rank: captain yearsService: 11 description: The first responder data collected from the user to be verified required: true '/verification/{verificationId}/step/collectLicensedProfessionalPersonalInfo': post: tags: - verification summary: Submit licensed professional data description: Submit data for a licensed professional verification operationId: submitLicensedProfessionalVerification parameters: - in: path name: verificationId description: Unique identifier for the ongoing verification required: true schema: type: string responses: '200': description: The result of the verification content: application/json: schema: $ref: '#/components/schemas/VerificationResponse' examples: Licensed Professional Success: $ref: '#/components/examples/licensedProfessionalSuccess' Licensed Professional Document Upload: $ref: '#/components/examples/licensedProfessionalDocumentUpload' Licensed Professional Document Rejected: $ref: '#/components/examples/licensedProfessionalDocumentRejected' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/VerificationResponse' examples: licensedProfessionalCollectInfoInvalid: $ref: '#/components/examples/licensedProfessionalCollectInfoInvalid' '404': description: Verification not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: verificationNotFound: $ref: '#/components/examples/errorVerificationNotFound' '429': description: User is not permitted to perform any more verifications due to the program's person limiting policies content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: licensedProfessionalVerificationLimitError: $ref: '#/components/examples/licensedProfessionalVerificationLimitError' requestBody: content: application/json: schema: $ref: '#/components/schemas/LicensedProfessional' example: firstName: Verify lastName: Smith birthDate: '1991-01-01' statuses: [ 'LICENSED_COSMETOLOGIST' ] email: verify@test.com postalCode: '12345' organization: id: 0 name: Beauty Beholder metadata: specialty: colorist rank: master stylist description: The licensed professional and organization data collected from the user to be verified required: true '/verification/{verificationId}/step/collectMoverPersonalInfo': post: tags: - verification summary: Submit mover data description: Submit data for a mover verification operationId: submitMoverVerification parameters: - in: path name: verificationId description: Unique identifier for the ongoing verification required: true schema: type: string responses: '200': description: The result of the verification content: application/json: schema: $ref: '#/components/schemas/VerificationResponse' examples: Mover Success: $ref: '#/components/examples/moverSuccess' Mover Document Upload: $ref: '#/components/examples/moverDocumentUpload' Mover Document Rejected: $ref: '#/components/examples/moverDocumentRejected' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/VerificationResponse' examples: moverCollectInfoInvalid: $ref: '#/components/examples/moverCollectInfoInvalid' '404': description: Verification not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: verificationNotFound: $ref: '#/components/examples/errorVerificationNotFound' '429': description: User is not permitted to perform any more verifications due to the program's person limiting policies content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: moverVerificationLimitError: $ref: '#/components/examples/moverVerificationLimitError' requestBody: content: application/json: schema: $ref: '#/components/schemas/Mover' example: firstName: Verify lastName: Smith email: verify@test.com address1: 1111 A St postalCode: '11111' statuses: [ 'HOME_BUYER' ] metadata: homeBuyer: true otherMover: false description: The mover data collected from the user to be verified required: true '/verification/{verificationId}/step/collectMedicalProfessionalPersonalInfo': post: tags: - verification summary: Submit medical professional data description: Submit data for a medical professional verification operationId: submitMedicalProfessionalVerification parameters: - in: path name: verificationId description: Unique identifier for the ongoing verification required: true schema: type: string responses: '200': description: The result of the verification content: application/json: schema: $ref: '#/components/schemas/VerificationResponse' examples: Medical Professional Success: $ref: '#/components/examples/medicalProfessionalSuccess' Medical Professional Document Upload: $ref: '#/components/examples/medicalProfessionalDocumentUpload' Medical Professional Document Rejected: $ref: '#/components/examples/medicalProfessionalDocumentRejected' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/VerificationResponse' examples: medicalProfessionalCollectInfoInvalid: $ref: '#/components/examples/medicalProfessionalCollectInfoInvalid' '404': description: Verification not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: verificationNotFound: $ref: '#/components/examples/errorVerificationNotFound' '429': description: User is not permitted to perform any more verifications due to the program's person limiting policies content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: medicalProfessionalVerificationLimitError: $ref: '#/components/examples/medicalProfessionalVerificationLimitError' requestBody: content: application/json: schema: $ref: '#/components/schemas/MedicalProfessional' example: firstName: Verify lastName: Smith birthDate: '1991-01-01' status: 'NURSE' email: verify@test.com postalCode: '12345' organization: id: 651911 name: Yale-New Haven Hospital metadata: yearsService: 12 rank: RN description: The medical professional and organization data collected from the user to be verified required: true '/verification/{verificationId}/step/collectDriverLicensePersonalInfo': post: tags: - verification summary: Submit driver license data description: Submit data for verifying a subject based on their driver license operationId: submitDriverLicenseVerification parameters: - in: path name: verificationId description: Unique identifier for the ongoing verification required: true schema: type: string responses: '200': description: The result of the verification content: application/json: schema: $ref: '#/components/schemas/VerificationResponse' examples: Success: $ref: '#/components/examples/driverLicenseSuccess' Document Upload: $ref: '#/components/examples/driverLicenseDocumentUpload' Document Rejected: $ref: '#/components/examples/driverLicenseDocumentRejected' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/VerificationResponse' examples: Invalid Input: $ref: '#/components/examples/driverLicenseCollectInfoInvalid' '404': description: Verification not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: Verification Not Found: $ref: '#/components/examples/errorVerificationNotFound' '429': description: User is not permitted to perform any more verifications due to the program's person limiting policies content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: Verification Limit Error: $ref: '#/components/examples/driverLicenseVerificationLimitError' requestBody: content: application/json: schema: $ref: '#/components/schemas/DriverLicense' example: firstName: Verify lastName: Smith state: OR driverLicenseNumber: 1234567 email: verify@test.com application/jose: schema: type: string description: The data collected from the user to be verified required: true '/verification/{verificationId}/step/collectGeneralIdentityPersonalInfo': post: tags: - verification summary: Submit general identity data description: Submit data for verifying a subject based on their general identity operationId: submitGeneralIdentityVerification parameters: - in: path name: verificationId description: Unique identifier for the ongoing verification required: true schema: type: string responses: '200': description: The result of the verification content: application/json: schema: $ref: '#/components/schemas/VerificationResponse' examples: Success: $ref: '#/components/examples/generalIdentitySuccess' Document Upload: $ref: '#/components/examples/generalIdentityDocumentUpload' Document Rejected: $ref: '#/components/examples/generalIdentityDocumentRejected' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/VerificationResponse' examples: Invalid Input: $ref: '#/components/examples/generalIdentityCollectInfoInvalid' '404': description: Verification not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: Verification Not Found: $ref: '#/components/examples/errorVerificationNotFound' '429': description: User is not permitted to perform any more verifications due to the program's person limiting policies content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: Verification Limit Error: $ref: '#/components/examples/generalIdentityVerificationLimitError' requestBody: content: application/json: schema: $ref: '#/components/schemas/GeneralIdentity' example: firstName: 'Verify' lastName: 'Smith' birthDate: '1990-01-01' address1: '1 Main St' city: 'Eugene' state: 'OR' postalCode: '97000' email: verify@test.com description: The data collected from the user to be verified required: true '/verification/{verificationId}/step/collectEmployeePersonalInfo': post: tags: - verification summary: Submit employee data description: Submit data for an employee verification operationId: submitEmployeeVerification parameters: - in: path name: verificationId description: Unique identifier for the ongoing verification required: true schema: type: string responses: '200': description: The result of the verification content: application/json: schema: $ref: '#/components/schemas/VerificationResponse' examples: Employee Success: $ref: '#/components/examples/employeeSuccess' Employee Document Upload: $ref: '#/components/examples/employeeDocumentUpload' Employee Document Rejected: $ref: '#/components/examples/employeeDocumentRejected' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/VerificationResponse' examples: employeeCollectInfoInvalid: $ref: '#/components/examples/employeeCollectInfoInvalid' '404': description: Verification not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: verificationNotFound: $ref: '#/components/examples/errorVerificationNotFound' '429': description: User is not permitted to perform any more verifications due to the program's person limiting policies content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: employeeVerificationLimitError: $ref: '#/components/examples/employeeVerificationLimitError' requestBody: content: application/json: schema: $ref: '#/components/schemas/Employee' example: firstName: Verify lastName: Smith email: verify@test.com address1: '123 Main St' city: Anytown state: OR postalCode: '12345' country: US organization: id: 309361 name: Hyster-Yale Group metadata: level: manager salary: 50000 description: The employee and company data collected from the user to be verified required: true '/verification/{verificationId}/step/collectMemberPersonalInfo': post: tags: - verification summary: Submit member data description: Submit data for a member verification operationId: submitMemberVerification parameters: - in: path name: verificationId description: Unique identifier for the ongoing verification required: true schema: type: string responses: '200': description: The result of the verification content: application/json: schema: $ref: '#/components/schemas/VerificationResponse' examples: memberSuccess: $ref: '#/components/examples/memberSuccess' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/VerificationResponse' examples: memberCollectInfoInvalid: $ref: '#/components/examples/memberCollectInfoInvalid' '404': description: Verification not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: verificationNotFound: $ref: '#/components/examples/errorVerificationNotFound' '429': description: User is not permitted to perform any more verifications due to the program's person limiting policies content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: memberVerificationLimitError: $ref: '#/components/examples/memberVerificationLimitError' requestBody: content: application/json: schema: $ref: '#/components/schemas/Member' example: firstName: Verify lastName: Smith email: verify@test.com organization: id: 4101 name: AARP (Washington, DC) metadata: age: 67 state: DC description: >- The member and organization data collected from the user to be verified required: true '/verification/{verificationId}/step/collectLowIncomePersonalInfo': post: tags: - verification summary: Submit low income personal data description: Submit data for a low income verification operationId: submitLowIncomeVerification parameters: - in: path name: verificationId description: Unique identifier for the ongoing verification required: true schema: type: string responses: '200': description: The result of the verification content: application/json: schema: $ref: '#/components/schemas/VerificationResponse' examples: Low Income Success: $ref: '#/components/examples/lowIncomeSuccess' Low Income Document Upload: $ref: '#/components/examples/lowIncomeDocumentUpload' Low Income Document Rejected: $ref: '#/components/examples/lowIncomeDocumentRejected' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/VerificationResponse' examples: teacherCollectInfoInvalid: $ref: '#/components/examples/lowIncomeCollectInfoInvalid' '404': description: Verification not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: verificationNotFound: $ref: '#/components/examples/errorVerificationNotFound' '429': description: User is not permitted to perform any more verifications due to the program's person limiting policies content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: teacherVerificationLimitError: $ref: '#/components/examples/lowIncomeVerificationLimitError' requestBody: content: application/json: schema: $ref: '#/components/schemas/LowIncome' example: country: US firstName: Verify lastName: Smith birthDate: '1991-01-01' address1: '123 Main St' city: 'Portland' state: 'OR' postalCode: '97222' phoneNumber: '5415551234' email: verify@test.com statuses: [ 'SNAP_BENEFITS' ] ebtCardNumber: '60048667812345678' metadata: lowIncome: true state: Oregon description: >- The low income personal data collected from the user to be verified required: true '/verification/{verificationId}/step/collectIdentifier': post: tags: - verification summary: Collect specified identifier from consumer description: >- Only for verifications with Remember Me enabled. After verification has been initialized, start with collecting the specified identifier from the consumer. operationId: collectIdentifier parameters: - in: path name: verificationId description: Unique identifier for the ongoing verification required: true schema: type: string responses: '200': description: The next step in the verification process content: application/json: schema: $ref: '#/components/schemas/VerificationResponse' examples: completeAuthentication: $ref: '#/components/examples/completeAuthentication' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: invalidStepError: $ref: '#/components/examples/invalidStepError' '404': description: Verification not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: verificationNotFound: $ref: '#/components/examples/errorVerificationNotFound' requestBody: content: application/json: schema: $ref: '#/components/schemas/Identifier' example: email: "user@place.com" required: true '/verification/{verificationId}/step/completeAuthentication': post: tags: - verification summary: Completes an authentication loop. description: >- Only for verifications with Remember Me enabled. After an identifier has been submitted that was previously remembered, this allows the completion of the authentication loop by supplying a token that was provided to the consumer. operationId: completeAuthenticationLoop parameters: - in: path name: verificationId description: Unique identifier for the ongoing verification required: true schema: type: string responses: '200': description: The next step in the verification process content: application/json: schema: $ref: '#/components/schemas/VerificationResponse' examples: collectPersonalInfo: $ref: '#/components/examples/collectPersonalInfo' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: invalidAuthenticationLoopTokenError: $ref: '#/components/examples/invalidAuthenticationLoopToken' '404': description: Verification not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: verificationNotFound: $ref: '#/components/examples/errorVerificationNotFound' requestBody: content: application/json: schema: $ref: '#/components/schemas/AuthenticationToken' example: authenticationToken: "123456" required: true delete: tags: - verification summary: Cancel authentication loop description: Only for verifications with Remember Me enabled. Cancels an ongoing authentication loop if the consumer wishes not to complete it. Proceeds with normal verification. operationId: cancelAuthenticationLoop parameters: - in: path name: verificationId description: Unique identifier for the ongoing verification required: true schema: type: string responses: '200': description: The next step in the verification process content: application/json: schema: $ref: '#/components/schemas/VerificationResponse' examples: studentSuccess: $ref: '#/components/examples/collectPersonalInfo' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/VerificationResponse' examples: invalidSsoError: $ref: '#/components/examples/invalidStepError' '404': description: Verification not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: verificationNotFound: $ref: '#/components/examples/errorVerificationNotFound' '/verification/{verificationId}/step/sso': get: tags: - verification summary: Start SSO process description: Start the SSO process for a given verification. This endpoint will redirect the user to the appropriate login page. operationId: beginSso parameters: - in: path name: verificationId description: Unique identifier for the ongoing verification required: true schema: type: string responses: '307': description: Redirect to the appropriate login page. '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/VerificationResponse' examples: invalidSsoError: $ref: '#/components/examples/invalidSsoError' '404': description: Verification not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: verificationNotFound: $ref: '#/components/examples/errorVerificationNotFound' delete: tags: - verification summary: Cancel SSO verification description: Cancel an SSO verification (will move the verification to the docUpload step) operationId: cancelSso parameters: - in: path name: verificationId description: Unique identifier for the ongoing verification required: true schema: type: string responses: '200': description: The next step in the verification process content: application/json: schema: $ref: '#/components/schemas/VerificationResponse' examples: studentSuccess: $ref: '#/components/examples/studentSuccess' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/VerificationResponse' examples: invalidSsoError: $ref: '#/components/examples/invalidSsoError' '404': description: Verification not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: verificationNotFound: $ref: '#/components/examples/errorVerificationNotFound' '/verification/{verificationId}/step/emailLoop': post: tags: - verification summary: Submit email loop response description: Complete the email loop verification using the token provided in the email sent to the subject being verified. operationId: completeEmailLoop parameters: - in: path name: verificationId description: Unique identifier for the ongoing verification required: true schema: type: string responses: '200': description: The next step in the verification process content: application/json: schema: $ref: '#/components/schemas/VerificationResponse' examples: studentSuccess: $ref: '#/components/examples/studentSuccess' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/VerificationResponse' examples: invalidEmailLoopError: $ref: '#/components/examples/invalidEmailLoop' '404': description: Verification not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: verificationNotFound: $ref: '#/components/examples/errorVerificationNotFound' '429': description: User is not permitted to perform any more verifications due to the program's person limiting policies content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: studentVerificationLimitError: $ref: '#/components/examples/studentVerificationLimitError' requestBody: content: application/json: schema: $ref: '#/components/schemas/EmailLoopToken' example: emailToken: 123456 description: The token that was sent to the subjects email required: true delete: tags: - verification summary: Cancel email loop verification description: Cancel an ongoing email loop verification (will move the verification to the docUpload step) operationId: cancelEmailLoop parameters: - in: path name: verificationId description: Unique identifier for the ongoing verification required: true schema: type: string responses: '200': description: The next step in the verification process content: application/json: schema: $ref: '#/components/schemas/VerificationResponse' examples: studentSuccess: $ref: '#/components/examples/studentSuccess' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/VerificationResponse' examples: invalidEmailLoopError: $ref: '#/components/examples/invalidEmailLoop' '404': description: Verification not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: verificationNotFound: $ref: '#/components/examples/errorVerificationNotFound' '/verification/{verificationId}/step/emailLoop/retry': get: tags: - verification summary: Retry email loop description: Send a new email with a fresh email loop token to the person being verified. operationId: resendEmailLoopToken parameters: - in: path name: verificationId description: Unique identifier for the ongoing verification required: true schema: type: string responses: '204': description: The email was sent '404': description: Verification not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: verificationNotFound: $ref: '#/components/examples/errorVerificationNotFound' '/verification/{verificationId}/step/emailLoop/retrieveToken': post: tags: - verification summary: Retrieve email loop token description: Optionally creates and returns the current email loop token. operationId: retrieveEmailLoopToken parameters: - in: path name: verificationId description: Unique identifier for the ongoing verification required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/RetrieveEmailLoopTokenRequest' example: refreshToken: true responses: '200': description: Latest email loop token returned content: application/json: schema: $ref: '#/components/schemas/RetrieveEmailLoopTokenResponse' '404': description: Verification not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: verificationNotFound: $ref: '#/components/examples/errorVerificationNotFound' '400': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: Bad Request '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: invalidTokenError: $ref: '#/components/examples/invalidTokenError' security: - apiToken: [ ] '/verification/{verificationId}/step/emailLoop/resume': post: tags: - verification summary: Resume email loop description: >- Resumes a paused email loop. If provided, the given email address will be used for the Email Loop. Otherwise, the one already submitted for the Verification will be used. In either case, the domain of the email address will be validated prior to sending the email message. If the domain is valid for the organization associated with the request, then the user will have been sent an email message containing a link that will complete the email loop, unless the program is configured to bypass sending the email. In that case, no email message was sent, and the email loop token is included in the response. operationId: resumeEmailLoop parameters: - in: path name: verificationId description: Unique identifier for the ongoing verification required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/ResumeEmailLoopRequest' example: emailAddress: 'joe.verify@sheerid.com' responses: '200': description: The result of resuming the email loop content: application/json: schema: $ref: '#/components/schemas/ResumeEmailLoopResponse' examples: resumeResponse: $ref: '#/components/examples/resumeEmailLoopResponse' resumeResponseWithToken: $ref: '#/components/examples/resumeEmailLoopResponseWithToken' '404': description: Verification not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: verificationNotFound: $ref: '#/components/examples/errorVerificationNotFound' '400': content: application/json: schema: $ref: '#/components/schemas/EmailLoopResponse' examples: invalidEmailAddressError: $ref: '#/components/examples/invalidEmailLoopAddressOverrideError' description: Bad Request '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: invalidTokenError: $ref: '#/components/examples/invalidTokenError' security: - apiToken: [ ] '/verification/{verificationId}/step/emailLoop/emailAddressOverride': post: tags: - verification summary: Allow user to submit an alternate email address description: >- Allows a user to submit an alternate email address. This email address will be used for the Email Loop. The domain of the email address will be validated prior to sending the email message. If the domain is valid for the organization associated with the request, then the user will have been sent an email message containing a link that will complete the email loop, unless the program is configured to bypass sending the email. operationId: emailAddressOverride parameters: - in: path name: verificationId description: Unique identifier for the ongoing verification required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/ResumeEmailLoopRequest' example: emailAddress: 'joe.verify@sheerid.com' responses: '200': description: The result of resuming the email loop content: application/json: schema: $ref: '#/components/schemas/EmailLoopResponse' examples: resumeResponse: $ref: '#/components/examples/resumeEmailLoopResponse' '404': description: Verification not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: verificationNotFound: $ref: '#/components/examples/errorVerificationNotFound' '400': content: application/json: schema: $ref: '#/components/schemas/EmailLoopResponse' examples: invalidEmailAddressError: $ref: '#/components/examples/invalidEmailLoopAddressOverrideError' description: Bad Request '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: invalidTokenError: $ref: '#/components/examples/invalidTokenError' '/verification/{verificationId}/step/smsLoop': post: tags: - verification summary: Submit SMS code description: Submit the token that was provided to the person being verified via an SMS message. operationId: submitSMSCode parameters: - in: path name: verificationId description: Unique identifier for the ongoing verification required: true schema: type: string responses: '200': description: The next step in the verification process content: application/json: schema: $ref: '#/components/schemas/VerificationResponse' examples: studentSuccess: $ref: '#/components/examples/studentSuccess' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/VerificationResponse' examples: invalidSMSError: $ref: '#/components/examples/invalidSMSError' '404': description: Verification not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: verificationNotFound: $ref: '#/components/examples/errorVerificationNotFound' requestBody: content: application/json: schema: $ref: '#/components/schemas/SMSCode' example: smsCode: 123456 description: The SMS code that was sent to the user required: true '/verification/{verificationId}/step/smsLoop/retry': get: tags: - verification summary: Retry SMS code description: Send a new SMS code to the person being verified. operationId: resendSMSCode parameters: - in: path name: verificationId description: Unique identifier for the ongoing verification required: true schema: type: string responses: '204': description: The SMS message was sent '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/VerificationResponse' examples: maxSMSLimitReached: $ref: '#/components/examples/maxSMSLimitReached' '404': description: Verification not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: verificationNotFound: $ref: '#/components/examples/errorVerificationNotFound' '/verification/{verificationId}/step/docUpload': post: tags: - verification summary: Upload documents description: Submit files for document review operationId: submitDocumentReviewFilesWithoutToken parameters: - in: path name: verificationId description: Unique identifier for the ongoing verification required: true schema: type: string requestBody: content: multipart/form-data: schema: $ref: '#/components/schemas/DocumentUploadRequest' application/json: schema: $ref: '#/components/schemas/InitiateDocumentUploadRequest' required: true responses: '200': description: The result of the document upload content: application/json: schema: $ref: '#/components/schemas/VerificationResponse' examples: pending: $ref: '#/components/examples/pending' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/VerificationResponse' examples: maxFilesExceededError: $ref: '#/components/examples/maxFilesExceededError' '404': description: Verification not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: verificationNotFound: $ref: '#/components/examples/errorVerificationNotFound' '413': description: Maximum allowed file size exceeded content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: maxFileSizeExceededError: $ref: '#/components/examples/maxFileSizeExceededError' '429': description: User is not permitted to perform any more document uploads due to the program's upload limiting policies content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: docReviewLimitExceeded: $ref: '#/components/examples/docReviewLimitExceededError' delete: tags: - verification summary: Cancel document upload description: Cancel document upload for a verification (will move the verification to the next step) operationId: cancelDocUpload parameters: - in: path name: verificationId description: Unique identifier for the ongoing verification required: true schema: type: string responses: '200': description: The next step in the verification process content: application/json: schema: $ref: '#/components/schemas/VerificationResponse' examples: override: $ref: '#/components/examples/override' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/VerificationResponse' examples: invalidStepError: $ref: '#/components/examples/invalidStepError' '404': description: Verification not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: verificationNotFound: $ref: '#/components/examples/errorVerificationNotFound' '/verification/{verificationId}/step/docUpload/{docUploadToken}': post: tags: - verification summary: Upload documents description: This endpoint has been deprecated. Use 'verification/{verificationId}/step/docUpload' instead operationId: submitDocumentReviewFiles deprecated: true parameters: - in: path name: verificationId description: Unique identifier for the ongoing verification required: true schema: type: string - in: path name: docUploadToken description: Token to authorize a document to be uploaded for a given verification required: true schema: type: string requestBody: content: multipart/form-data: schema: $ref: '#/components/schemas/DocumentUploadRequest' application/json: schema: $ref: '#/components/schemas/InitiateDocumentUploadRequest' required: true responses: '200': description: The result of the document upload content: application/json: schema: $ref: '#/components/schemas/VerificationResponse' examples: pending: $ref: '#/components/examples/pending' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/VerificationResponse' examples: maxFilesExceededError: $ref: '#/components/examples/maxFilesExceededError' '404': description: Verification not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: verificationNotFound: $ref: '#/components/examples/errorVerificationNotFound' '413': description: Maximum allowed file size exceeded content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: maxFileSizeExceededError: $ref: '#/components/examples/maxFileSizeExceededError' '429': description: User is not permitted to perform any more document uploads due to the program's upload limiting policies content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: docReviewLimitExceeded: $ref: '#/components/examples/docReviewLimitExceededError' '/verification/{verificationId}/step/completeDocUpload': post: tags: - verification summary: Mark uploading documents as completed description: Mark uploading documents as completed operationId: completeDocUpload parameters: - in: path name: verificationId description: Unique identifier for the ongoing verification required: true schema: type: string responses: '200': description: The result of the document upload content: application/json: schema: $ref: '#/components/schemas/VerificationResponse' examples: pending: $ref: '#/components/examples/pending' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/VerificationResponse' examples: maxFilesExceededError: $ref: '#/components/examples/maxFilesExceededError' '404': description: Verification not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: verificationNotFound: $ref: '#/components/examples/errorVerificationNotFound' '429': description: User is not permitted to perform any more document uploads due to the program's upload limiting policies content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: docReviewLimitExceeded: $ref: '#/components/examples/docReviewLimitExceededError' '/verification/{verificationId}/step/resultOverride': post: tags: - verification summary: Modify the result of a verification via overriding description: This endpoint allows someone with access to a secret code to override the verification result, forcing it to be approved operationId: overrideVerification parameters: - in: path name: verificationId description: Unique identifier for the ongoing verification required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/OverrideRequest' required: true responses: '200': description: The override was completed successfully content: application/json: schema: $ref: '#/components/schemas/VerificationResponse' examples: success: $ref: '#/components/examples/studentSuccess' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/VerificationResponse' examples: invalidOverrideCodeError: $ref: '#/components/examples/invalidOverrideCodeError' '404': description: Verification not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: verificationNotFound: $ref: '#/components/examples/errorVerificationNotFound' '429': description: Incorrect verification override code attempt limit exceeded content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: verificationOverrideAttemptLimitExceeded: $ref: '#/components/examples/incorrectVerificationOverrideCodeAttemptLimitExceededError' '/verification/marketplace': post: tags: - verification summary: Initiate Marketplace verification description: Create a verification that will use the Marketplace verification system operationId: newMarketplaceVerification responses: '200': description: A response including the unique verification token that can be used to verify the user content: application/json: schema: $ref: '#/components/schemas/NewMarketplaceVerificationResponse' examples: collectMarketplaceToken: $ref: '#/components/examples/marketplaceCollectToken' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/VerificationResponse' examples: invalidProgramError: $ref: '#/components/examples/invalidProgramError' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: invalidTokenError: $ref: '#/components/examples/invalidTokenError' '403': description: Program not active, due to future start date or a past end date. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: programNotActive: $ref: '#/components/examples/programInactiveError' programExpired: $ref: '#/components/examples/programExpiredError' '404': description: Program not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: programNotFound: $ref: '#/components/examples/programNotFoundError' requestBody: content: application/json: schema: $ref: '#/components/schemas/NewMarketplaceVerificationRequest' example: programId: '222222222222222222222222' trackingId: '333333333333333333333333' subject: email: 'user@place.com' description: The request to retrieve a verification token to verify with the provided program required: true security: - apiToken: [ ] '/verification/{verificationId}/step/collectMarketplaceToken': post: tags: - verification summary: Submit marketplace verification data description: Submit data for a marketplace verification operationId: submitMarketplaceVerification parameters: - in: path name: verificationId description: Unique identifier for the ongoing verification required: true schema: type: string responses: '200': description: The result of the verification content: application/json: schema: $ref: '#/components/schemas/VerificationResponse' examples: marketplaceSuccess: $ref: '#/components/examples/marketplaceSuccess' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/VerificationResponse' examples: employeeCollectInfoInvalid: $ref: '#/components/examples/employeeCollectInfoInvalid' '404': description: Verification not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: verificationNotFound: $ref: '#/components/examples/errorVerificationNotFound' '429': description: User is not permitted to perform any more verifications due to the program's person limiting policies content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: marketplaceVerificationLimitError: $ref: '#/components/examples/marketplaceVerificationLimitError' requestBody: content: application/json: schema: $ref: '#/components/schemas/VerificationToken' example: verificationToken: 'AbcdEfg1234!@#$AbcdEfg1234!@#$12' description: The verification token to submit a marketplace verification required: true '/organization/{verificationId}': get: tags: - verification summary: Get organization details description: Get detailed information about the organization submitted for a verification. Requires an API token. operationId: getOrganizationDetails parameters: - in: path name: verificationId description: Unique identifier for the verification required: true schema: type: string responses: '200': description: Detailed information about the organization content: application/json: schema: $ref: '#/components/schemas/OrganizationDetails' examples: Success Verification Details: $ref: '#/components/examples/organizationDetailsSuccess' '204': description: Verification is NEW and/or there is no organization associated with the verification '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/SystemErrorMessage' example: systemErrorMessage: Provided API token is empty or invalid '404': description: Verification not found content: application/json: schema: $ref: '#/components/schemas/SystemErrorMessage' example: systemErrorMessage: No verification found with id '111111111111111111111111' security: - apiToken: [ ] components: securitySchemes: apiToken: type: apiKey name: Authorization in: header schemas: ActiveMilitary: type: object description: An active duty member to be verified properties: firstName: description: The first name of the person being verified type: string lastName: description: The last name of the person being verified type: string deviceFingerprintHash: description: The device fingerprint collected for the person being verified type: string email: $ref: '#/components/schemas/ValidEmail' birthDate: $ref: '#/components/schemas/ValidBirthDate' organization: $ref: '#/components/schemas/Organization' phoneNumber: $ref: '#/components/schemas/ValidPhoneNumber' locale: $ref: '#/components/schemas/ValidLocale' ipAddress: $ref: '#/components/schemas/IPV4Address' ipAddressExtended: $ref: '#/components/schemas/IPAddress' description: supersedes the 'ipAddress' field externalUserId: description: An identifier stored with the verification for external reference type: string email2: $ref: '#/components/schemas/ValidEmail' metadata: $ref: '#/components/schemas/PersonalInfoMetadata' country: type: string description: The two character country code for the person being verified. required: - firstName - lastName - email - birthDate - organization AddSchoolRequest: type: object properties: firstName: type: string description: The first name for the user submitting the add school request lastName: type: string description: The last name for the user submitting the add school request email: $ref: '#/components/schemas/ValidEmail' programId: type: string description: The programId for the program the user is attempting to verify against schoolName: type: string description: The name of the school that should be added schoolDomain: type: string description: The domain name associated with the school that should be added schoolCountry: type: string description: The two character country code where the school is located trackingId: type: string description: An optional tracking ID to associate with the add school request required: - firstName - lastName - email - programId - schoolName - schoolDomain - schoolCountry ConfirmedSegment: type: object description: Segment that has been confirmed for the verification subject properties: segment: $ref: '#/components/schemas/Segment' subSegment: $ref: '#/components/schemas/SubSegment' organization: $ref: '#/components/schemas/Organization' active: type: boolean description: Whether or not the user is currently affiliated with this segment. startDate: type: string format: date description: The date the user began being affiliated with this segment, or at least the start date of the most recent interval endDate: type: string format: date description: The date the user stopped, or will stop, being affiliated with this segment. ExternalVerificationType: type: string enum: - authoritative - domainValidation - documentReview - emailLoop - honorSystem - other - predictive - smsLoop - sso VerificationMethod: type: string description: The method used to decision a verification. Null for verifications that are in progress, or that expired before completion nullable: true enum: - INSTANT - MANUAL BrandInfo: type: object description: Information about the brand providing the offer properties: faqUrl: type: string description: The URL where a FAQ for the brand resides emailAddress: description: The email address for the brand $ref: '#/components/schemas/ValidEmail' phoneNumber: description: The phone number for the brand $ref: '#/components/schemas/ValidPhoneNumber' required: - faqUrl - emailAddress - phoneNumber BuildInformationResponseMessage: type: object description: The current version number and build time for the SheerID server application properties: sheeridVersion: type: string description: The version of SheerID deployed on the server sheeridGitCommit: type: string description: The Git SHA1 hash for the last commit in this build puppetGitCommit: type: string description: The Git SHA1 hash for the last commit in the puppet configuration realm at deployment time buildTimestamp: type: string description: The timestamp of the build which produced the version of SheerID deployed on the server ConsolationMessages: type: object description: The messages to be shown to the user when the consolation step is reached. additionalProperties: type: string properties: title: type: string description: The title for the page when the user reaches the consolation step. subtitle: type: string description: The subtitle for the page when the user reaches the consolation step. verificationOnly: type: string description: Message shown to direct questions about the verification process. required: - title - subtitle - verificationOnly ConsolationResponse: type: object description: The verification was not successful, but a consolation reward is available to the user. properties: verificationId: type: string description: >- The unique ID for the [VerificationRequest](#!/components/schemas/VerificationRequest) associated with this response currentStep: $ref: '#/components/schemas/VerificationStep' segment: $ref: '#/components/schemas/Segment' subSegment: $ref: '#/components/schemas/SubSegment' redirectUrl: type: string description: The URL to use for redirecting a user for the given error locale: $ref: '#/components/schemas/ValidLocale' country: $ref: '#/components/schemas/ValidCountryCode' consolationRewardCode: type: string description: The consolation reward code created: type: integer format: int64 updated: type: integer format: int64 required: - verificationId - currentStep - consolationRewardCode - redirectUrl ConsumerInfoState: type: string description: The status of consumer info for RememberMe enabled programs enum: - consumerNotFound - consumerFoundNewFieldsAvailable - consumerFoundNotActionable OverrideResponse: type: object description: The verification was not successful, but a successful result can be achieved by providing an override using an override code. properties: verificationId: type: string description: >- The unique ID for the [VerificationRequest](#!/components/schemas/VerificationRequest) associated with this response currentStep: $ref: '#/components/schemas/VerificationStep' segment: $ref: '#/components/schemas/Segment' subSegment: $ref: '#/components/schemas/SubSegment' submissionUrl: type: string description: The URL to use for performing a verification override locale: $ref: '#/components/schemas/ValidLocale' country: $ref: '#/components/schemas/ValidCountryCode' created: type: integer format: int64 updated: type: integer format: int64 required: - verificationId - currentStep - submissionUrl OrganizationDetails: type: object description: Detailed organization information for a given verification. Must have a valid API token to view. properties: id: type: integer format: int64 description: The unique identifier for the organization. name: type: string description: The name of the organization. type: $ref: '#/components/schemas/OrganizationType' description: The type of the organization. street: type: string description: The street of the organization. city: type: string description: The city of the organization. state: type: string description: The two character state code of the organization. zip: type: string description: The zip code of the organization. country: type: string description: The two character country code of the organization. required: - id - name - type - street - city - state - zip - country ConversionRequest: type: object description: Information about a conversion properties: amount: type: number description: The amount of the conversion format: double minimum: 0 default: 1.0 currency: type: string description: >- The ISO-4217 3-letter Alphabetic Currency Code (Default: "USD") default: 'USD' tags: type: array items: type: string description: An array of any arbitrary tags to associate with the conversion ConversionResponse: type: object description: The result of storing the conversion. properties: id: type: string description: The ID of the stored conversion. CustomMetadata: type: object description: The custom metadata configuration being used for a verification properties: enabled: type: boolean description: Whether or not collecting metadata keys is enabled keys: type: array items: type: string description: The list of keys to be collected, if metadata collection is enabled required: - enabled - keys DriverLicense: type: object description: A person to be verified properties: firstName: description: The first name of the person being verified type: string lastName: description: The last name of the person being verified type: string state: description: The 2 digit state code which issued the driver license for the person being verified type: string driverLicenseNumber: description: The drivers license number of an individual; non-alphanumeric characters are ignored type: string email: $ref: '#/components/schemas/ValidEmail' phoneNumber: $ref: '#/components/schemas/ValidPhoneNumber' locale: $ref: '#/components/schemas/ValidLocale' deviceFingerprintHash: description: The device fingerprint collected for the person being verified type: string ipAddress: $ref: '#/components/schemas/IPV4Address' ipAddressExtended: $ref: '#/components/schemas/IPAddress' metadata: $ref: '#/components/schemas/PersonalInfoMetadata' required: - firstName - lastName - state - driverLicenseNumber - email GeneralIdentity: type: object description: A person to be verified properties: firstName: description: The first name of the person being verified type: string lastName: description: The last name of the person being verified type: string birthDate: $ref: '#/components/schemas/ValidBirthDate' address1: description: The street address for the person being verified type: string city: description: The city for the person being verified type: string state: description: The 2 digit state code of residency for the person being verified type: string postalCode: type: string description: The postal code for the person being verified. email: $ref: '#/components/schemas/ValidEmail' phoneNumber: $ref: '#/components/schemas/ValidPhoneNumber' locale: $ref: '#/components/schemas/ValidLocale' deviceFingerprintHash: description: The device fingerprint collected for the person being verified type: string ipAddress: $ref: '#/components/schemas/IPV4Address' ipAddressExtended: $ref: '#/components/schemas/IPAddress' metadata: $ref: '#/components/schemas/PersonalInfoMetadata' required: - firstName - lastName - address1 - city - state - postalCode - email DocumentReviewResponse: type: object description: Instant verification was not successful, so a document must be uploaded for review properties: verificationId: type: string description: >- The unique ID for the [VerificationRequest](#!/components/schemas/VerificationRequest) associated with this response currentStep: $ref: '#/components/schemas/VerificationStep' submissionUrl: type: string description: The URL to use for uploading documents errorIds: type: array description: The list of errors that occurred, if any items: $ref: '#/components/schemas/ErrorId' rejectionReasons: type: array description: The keys to be used to fetch any reasons the previous documents associated with the verificaiton were rejected items: $ref: '#/components/schemas/RejectionReason' maxReviewTime: $ref: '#/components/schemas/ReviewTime' estimatedReviewTime: $ref: '#/components/schemas/EstimatedReviewTime' segment: $ref: '#/components/schemas/Segment' subsegment: $ref: '#/components/schemas/SubSegment' locale: $ref: '#/components/schemas/ValidLocale' country: $ref: '#/components/schemas/ValidCountryCode' created: type: integer format: int64 updated: type: integer format: int64 documents: type: array description: A list of documents for which upload has been initiated but not completed. items: type: object properties: documentId: type: string description: A unique identifier of the document status: $ref: '#/components/schemas/DocumentUploadStatus' mimeType: type: string description: The MIME type of the file to be uploaded fileSize: type: integer description: The size in bytes of the file to be uploaded minimum: 1 maximum: 10000000 uploadUrl: type: string description: >- The URL to use to upload the file (using PUT with a multipart/form-data request). Only present if the document status is PENDING_UPLOAD. errors: type: array description: Any errors that were encountered items: $ref: '#/components/schemas/DocumentUploadError' required: - documentId - status - mimeType - fileSize required: - verificationId - currentStep - submissionUrl - segment DocumentUploadStatus: type: string description: >- The status of the document. Possible values are: * PENDING: The document has not yet been uploaded * FINISHED: The document is in the process of being reviewed * ERROR: An error occurred during processing of the document enum: - PENDING - FINISHED - ERROR DocumentUploadError: type: string description: >- The type of error that was encountered. Only present if the status is ERROR. Possible values are: * ZERO_SIZE: The document is empty * TOO_LARGE: The document is too large (maximum file size is 10 MB) * UNSUPPORTED_TYPE: The document MIME type is not supported * UNKNOWN: An unknown error occurred enum: - ZERO_SIZE - TOO_LARGE - UNSUPPORTED_TYPE - UNKNOWN DocumentUploadRequest: type: object description: Request to upload files for document review properties: file: type: array items: type: string format: binary required: - file DocUploadMessages: type: object properties: title: type: string description: The title for the document upload step subtitle: type: string description: The subtitle for the document upload step required: - title - subtitle - acceptedTypes - submitButtonLabel - footer EligibleSchoolDomainSearch: type: object properties: programId: type: string description: The programId for the program the user is attempting to verify against schoolDomain: type: string description: The domain name associated with the school schoolCountry: type: string description: The two character country code where the school is located required: - programId - schoolCountry - schoolDomain EligibleSchoolNameSearch: type: object properties: programId: type: string description: The programId for the program the user is attempting to verify against schoolName: type: string description: The name of the school schoolCountry: type: string description: The two character country code where the school is located required: - programId - schoolCountry - schoolName EligibleSchoolSearchResult: type: object properties: eligible: type: array description: The list of eligible schools items: $ref: '#/components/schemas/Organization' ineligible: type: array description: The list of schools that are not eligible for the offer items: $ref: '#/components/schemas/Organization' errorIds: type: array description: List of ErrorIds describing any errors that occurred during the search items: $ref: '#/components/schemas/ErrorId' required: - eligible - ineligible - errorIds EmailLoopMessages: type: object description: Messages to show to the user when the emailLoop step is reached. additionalProperties: type: string properties: title: type: string description: The title of the page shown when the emailLoop step is reached. subtitleWithoutEmail: type: string description: A message indicating an email was sent and instructions for completing the step. skipEmail: type: string description: Message shown to indicate how to skip the email loop step if possible. required: - title - subtitleWithoutEmail - skipEmail EmailLoopResponse: type: object description: The user was sent an email message with a link that includes a token that needs to be submitted. properties: verificationId: type: string description: >- The unique ID for the [VerificationRequest](#!/components/schemas/VerificationRequest) associated with this response currentStep: $ref: '#/components/schemas/VerificationStep' errorIds: type: array description: The list of errors that occurred, if any items: $ref: '#/components/schemas/ErrorId' segment: $ref: '#/components/schemas/Segment' subsegment: $ref: '#/components/schemas/SubSegment' locale: $ref: '#/components/schemas/ValidLocale' country: $ref: '#/components/schemas/ValidCountryCode' created: type: integer format: int64 updated: type: integer format: int64 submissionUrl: type: string description: The url to use for submitting the email loop token cancelUrl: type: string description: The url to send a DELETE request to in order to cancel an ongoing email loop verification and move to the the docUpload step. Program must have an "Email Loop with Domain Validation" verification type to use this feature. canResendEmailLoop: type: boolean required: - verificationId - currentStep - submissionUrl EmailLoopToken: type: object description: A token to be used for completing an email loop verification properties: emailToken: description: The token provided to the subject in an email type: string deviceFingerprintHash: description: The device fingerprint collected for the person being verified type: string required: - token AuthenticationToken: type: object description: A token to be used for completing an authentication to use stored data in a verification properties: authenticationToken: description: The token provided to the subject in an email type: string required: - authenticationToken CompleteAuthenticationResponse: type: object description: The user was sent an email message with a link that includes a token that needs to be submitted. properties: verificationId: type: string description: >- The unique ID for the [VerificationRequest](#!/components/schemas/VerificationRequest) associated with this response currentStep: $ref: '#/components/schemas/VerificationStep' errorIds: type: array description: The list of errors that occurred, if any items: $ref: '#/components/schemas/ErrorId' segment: $ref: '#/components/schemas/Segment' subsegment: $ref: '#/components/schemas/SubSegment' locale: $ref: '#/components/schemas/ValidLocale' country: $ref: '#/components/schemas/ValidCountryCode' created: type: integer format: int64 updated: type: integer format: int64 submissionUrl: type: string description: The url to use for submitting the authentication token cancelUrl: type: string description: The url to send a DELETE request to in order to cancel an ongoing authentication verification and move to the the collectPersonalInfo step. required: - verificationId - currentStep - submissionUrl RememberConsumerRequest: type: object description: >- The consent information indicating whether the consumer has explicitly elected to opt in to have their PII more permanently stored. properties: rememberMeConsentValue: type: boolean default: false sheeridMarketingConsentValue: type: boolean default: false description: Indicates whether the consumer consents to marketing that originates from SheerID. required: - rememberMeConsentValue RememberMeCallToActionResponse: type: object description: >- After a verification is completed, this indicates what fields were collected during verification and whether there is an opportunity for the consumer to elect to have that information stored for future verifications. properties: verificationId: type: string default: false description: The unique ID for the verification. alreadyRemembered: type: boolean description: Indicates whether the consumer is already in our Remember Me database. collectedInformation: type: object description: >- The personal information fields that was collected from the consumer during verification. properties: collectedFields: type: array description: The list of names of the person fields that were collected from the consumer. items: type: string organization: $ref: '#/components/schemas/Organization' required: - verificationId - alreadyRemembered - collectedInformation RetrieveEmailLoopTokenRequest: type: object description: Body of a RetrieveEmailLoopToken request properties: refreshToken: description: If true, regenerate the email loop token before returning it default: false type: boolean RetrieveEmailLoopTokenResponse: type: object description: Body of a RetrieveEmailLoopToken response properties: token: description: The email loop token for the requested verification type: string ResumeEmailLoopRequest: type: object description: >- The request body to submit to the email loop resume call. The optional emailAddress property can be used to override the email address used for the email loop. The domain of the email address will be validated prior to sending the email message. properties: emailAddress: $ref: '#/components/schemas/ValidEmail' ResumeEmailLoopResponse: type: object description: >- The response returned when a call to resume a paused email loop is successful. The token property will be null unless the program is configured to bypass sending email messages for email loop. properties: verificationId: type: string description: >- The unique ID for the [VerificationRequest](#!/components/schemas/VerificationRequest) associated with this response currentStep: $ref: '#/components/schemas/VerificationStep' errorIds: type: array description: The list of errors that occurred, if any items: $ref: '#/components/schemas/ErrorId' segment: $ref: '#/components/schemas/Segment' subsegment: $ref: '#/components/schemas/SubSegment' locale: $ref: '#/components/schemas/ValidLocale' country: $ref: '#/components/schemas/ValidCountryCode' created: type: integer format: int64 updated: type: integer format: int64 currentState: $ref: '#/components/schemas/EmailLoopState' submissionUrl: type: string description: The url to use for submitting the email loop token cancelUrl: type: string description: The url to send a DELETE request to in order to cancel an ongoing email loop verification and move to the the docUpload step. Program must have an "Email Loop with Domain Validation" verification type to use this feature. canResendEmailLoop: type: boolean token: description: The email loop token for the requested verification type: string required: - verificationId - currentStep - submissionUrl Employee: type: object description: An employee to be verified properties: firstName: description: The first name of the person being verified type: string lastName: description: The last name of the person being verified type: string email: $ref: '#/components/schemas/ValidEmail' address1: description: The street address for the person being verified type: string city: description: The city for the person being verified type: string state: description: The 2 digit state code for the person being verified type: string postalCode: description: The postal code for the person being verified type: string organization: $ref: '#/components/schemas/Organization' phoneNumber: $ref: '#/components/schemas/ValidPhoneNumber' locale: $ref: '#/components/schemas/ValidLocale' country: $ref: '#/components/schemas/ValidCountryCode' deviceFingerprintHash: description: The device fingerprint collected for the person being verified type: string ipAddress: $ref: '#/components/schemas/IPV4Address' ipAddressExtended: $ref: '#/components/schemas/IPAddress' description: supersedes the 'ipAddress' field externalUserId: description: An identifier stored with the verification for external reference type: string email2: $ref: '#/components/schemas/ValidEmail' metadata: $ref: '#/components/schemas/PersonalInfoMetadata' required: - firstName - lastName - email - address1 - city - state - postalCode - organization EmploymentStatus: type: string enum: - EMPLOYEE ErrorId: type: string description: The unique identifier for the error messaging to show to the end user. enum: - internalServerError - noProgram - invalidProgram - expiredProgram - inactiveProgram - expiredVerification - noVerification - noOrganization - invalidRequest - verificationLimitExceeded - apiRateLimitExceeded - docReviewLimitExceeded - noRemainingRewardCodes - unknownError - invalidApiToken - simulatedError - invalidDocUploadToken - notFound - unauthorizedAccountStatus - unauthorizedDomain - unauthorizedIpAddress - unauthorizedRequest - unauthorizedUser - reverificationDailyLimitExceeded - invalidVerificationToken - expiredVerificationToken - notApproved - maxSMSCodeLimitExceeded - fraudRulesReject - invalidStep - invalidOrganization - invalidFirstName - invalidLastName - invalidEmail - invalidPhoneNumber - invalidBirthDate - invalidAddress1 - invalidCity - invalidState - invalidPostalCode - invalidMilitaryStatus - invalidFirstResponderStatus - invalidMedicalProfessionalStatus - invalidSocialSecurityNumber - invalidOverrideCode - underagePerson - outsideAgePerson - futureBirthDate - invalidDischargeDate - dischargeDateBeforeBirthDate - unsupportedDocMimeType - invalidFileSizeMax - invalidFileSizeEmpty - invalidNumberOfFiles - maxMetadataValuesExceeded - maxMetadataLengthExceeded - invalidSMSCode - expiredSMSCode - incorrectSMSCodeAttemptLimitExceeded - incorrectVerificationOverrideCodeAttemptLimitExceeded - invalidEmailLoopToken - expiredEmailLoopToken ErrorMessages: type: object description: Customized messaging for the error step additionalProperties: oneOf: - type: string - type: object properties: errorId: type: object additionalProperties: $ref: '#/components/schemas/ErrorIdMessages' description: The messages that should be shown for each ErrorId required: - errorId ErrorIdMessages: type: object description: Customized messaging for a given error step properties: title: type: string description: The title to use on the error page for this error ID buttonText: type: string description: The text to use on the call to action button on the error page, if any required: - title - buttonText ErrorResponse: type: object description: A non-recoverable error occurred. Check the `systemErrorMessage` property for debugging info. properties: verificationId: type: string description: >- The unique ID for the [VerificationRequest](#!/components/schemas/VerificationRequest) associated with this response errorIds: type: array description: The list of errors that occurred items: $ref: '#/components/schemas/ErrorId' currentStep: $ref: '#/components/schemas/VerificationStep' segment: $ref: '#/components/schemas/Segment' subsegment: $ref: '#/components/schemas/SubSegment' systemErrorMessage: type: string description: A description of the error that occurred to use for debugging purposes, not meant to be shown to the end user redirectUrl: type: string description: The URL to use for redirecting a user for the given error locale: $ref: '#/components/schemas/ValidLocale' country: $ref: '#/components/schemas/ValidCountryCode' created: type: integer format: int64 updated: type: integer format: int64 consolationRewardCode: type: string description: >- If a consolation reward is available for the type of error, then the reward code will be provided here. Otherwise, this will be null. required: - verificationId - currentStep - errorIds - systemErrorMessage - redirectUrl EstimatedReviewTime: type: string description: An estimation for how long an end user can expect a review to take enum: - A_FEW_MINUTES - A_HALF_HOUR - A_FEW_HOURS - A_FEW_DAYS FileUploadDescriptor: type: object description: A description of a file to be uploaded properties: fileName: type: string description: The name of the file to be uploaded mimeType: type: string description: The MIME type of the file to be uploaded fileSize: type: integer description: The size in bytes of the file to be uploaded minimum: 1 maximum: 10000000 required: - fileName - mimeType - fileSize FirstResponder: type: object description: A first responder to be verified properties: firstName: description: The first name of the person being verified type: string lastName: description: The last name of the person being verified type: string deviceFingerprintHash: description: The device fingerprint collected for the person being verified type: string email: $ref: '#/components/schemas/ValidEmail' birthDate: $ref: '#/components/schemas/ValidBirthDate' status: deprecated: true $ref: '#/components/schemas/FirstResponderStatus' statuses: type: array description: List of first responder statuses. items: $ref: '#/components/schemas/FirstResponderStatus' organization: $ref: '#/components/schemas/Organization' phoneNumber: $ref: '#/components/schemas/ValidPhoneNumber' locale: $ref: '#/components/schemas/ValidLocale' ipAddress: $ref: '#/components/schemas/IPV4Address' ipAddressExtended: $ref: '#/components/schemas/IPAddress' description: supersedes the 'ipAddress' field externalUserId: description: An identifier stored with the verification for external reference type: string email2: $ref: '#/components/schemas/ValidEmail' metadata: $ref: '#/components/schemas/PersonalInfoMetadata' postalCode: type: string description: The postal code for the person being verified. Provide when open org is submitted, i.e. organization id = 0 stateCode: type: string description: The two character state code for the person being verified. Provide when open org is submitted, i.e. organization id = 0 country: type: string description: The two character country code for the person being verified. required: - firstName - lastName - email - organization - statuses FirstResponderStatus: type: string enum: - POLICE - EMT - FIREFIGHTER - SEARCH_AND_RESCUE Identifier: type: object description: Identifier for person to be verified properties: email: $ref: '#/components/schemas/ValidEmail' required: - email InactiveMilitary: type: object description: An inactive military member to be verified properties: firstName: description: The first name of the person being verified type: string lastName: description: The last name of the person being verified type: string deviceFingerprintHash: description: The device fingerprint collected for the person being verified type: string email: $ref: '#/components/schemas/ValidEmail' birthDate: $ref: '#/components/schemas/ValidBirthDate' organization: $ref: '#/components/schemas/Organization' phoneNumber: $ref: '#/components/schemas/ValidPhoneNumber' locale: $ref: '#/components/schemas/ValidLocale' dischargeDate: type: string format: date description: The date the person being verified was discharged from the military ipAddress: $ref: '#/components/schemas/IPV4Address' ipAddressExtended: $ref: '#/components/schemas/IPAddress' description: supersedes the 'ipAddress' field externalUserId: description: An identifier stored with the verification for external reference type: string email2: $ref: '#/components/schemas/ValidEmail' metadata: $ref: '#/components/schemas/PersonalInfoMetadata' country: type: string description: The two character country code for the person being verified. socialSecurityNumber: $ref: '#/components/schemas/ValidSocialSecurityNumber' address1: description: The street address for the person being verified type: string city: description: The city of the address of the person being verified type: string state: description: The two-digit state code of the address of the person being verified type: string postalCode: description: The postal code of the address of the person being verified type: string required: - firstName - lastName - email - birthDate - organization - dischargeDate InitiateDocumentUploadRequest: description: Request to upload files for document review type: array items: $ref: '#/components/schemas/FileUploadDescriptor' OverrideRequest: description: Request to override the verification result, forcing approval type: object properties: overrideCode: type: string description: A secret code, which authorizes the user to override the verification result required: - overrideCode Internationalization: type: object properties: locale: type: string description: The locale to use for internationalization messages: $ref: '#/components/schemas/ProgramMessages' required: - locale - messages IPAddress: type: string format: ipv4,ipv6 description: >- The end-user's public IP address. This only needs to be provided in situations where the HTTP requests do not come directly from the end-user. IPV4Address: type: string format: ipv4 deprecated: true description: >- The end-user's public IP address. This only needs to be provided in situations where the HTTP requests do not come directly from the end-user. LabelDetails: type: object properties: comment: type: string description: Commentary related to application of a label required: - comment LicensedProfessional: type: object description: A licensed professional to be verified properties: firstName: description: The first name of the person being verified type: string lastName: description: The last name of the person being verified type: string deviceFingerprintHash: description: The device fingerprint collected for the person being verified type: string email: $ref: '#/components/schemas/ValidEmail' birthDate: $ref: '#/components/schemas/ValidBirthDate' postalCode: type: string description: The postal code for the person being verified statuses: type: array description: List of licensed professional statuses. A single value will be interpreted as a list with one entry. items: $ref: '#/components/schemas/LicensedProfessionalStatus' country: description: The country of residence of the person being verified $ref: '#/components/schemas/ValidCountryCode' organization: $ref: '#/components/schemas/Organization' phoneNumber: $ref: '#/components/schemas/ValidPhoneNumber' locale: $ref: '#/components/schemas/ValidLocale' ipAddress: $ref: '#/components/schemas/IPV4Address' ipAddressExtended: $ref: '#/components/schemas/IPAddress' description: supersedes the 'ipAddress' field externalUserId: description: An identifier stored with the verification for external reference type: string email2: $ref: '#/components/schemas/ValidEmail' metadata: $ref: '#/components/schemas/PersonalInfoMetadata' required: - firstName - lastName - email - birthDate - postalCode - organization - statuses LicensedProfessionalStatus: type: string enum: - LICENSED_COSMETOLOGIST - LICENSED_REAL_ESTATE_AGENT - VETERINARIAN - CHILD_CARE_WORKER - LIBRARIAN - INTERIOR_DESIGNER - ARCHITECT - GENERAL_CONTRACTOR LowIncome: type: object description: A low income person to be verified properties: firstName: description: The first name of the person being verified type: string lastName: description: The last name of the person being verified type: string postalCode: type: string description: The postal code for the person being verified email: $ref: '#/components/schemas/ValidEmail' birthDate: $ref: '#/components/schemas/ValidBirthDate' statuses: type: array description: List of low income statuses. A single value will be interpreted as a list with one entry. items: $ref: '#/components/schemas/LowIncomeStatus' address1: type: string description: The street address for the person being verified city: description: The city for the person being verified type: string state: description: The 2 digit state code for the person being verified type: string organization: $ref: '#/components/schemas/Organization' country: $ref: '#/components/schemas/ValidCountryCode' phoneNumber: $ref: '#/components/schemas/ValidPhoneNumber' locale: $ref: '#/components/schemas/ValidLocale' ipAddress: $ref: '#/components/schemas/IPV4Address' ipAddressExtended: $ref: '#/components/schemas/IPAddress' deviceFingerprintHash: description: The device fingerprint collected for the person being verified type: string ebtCardNumber: description: The number of an EBT card. type: string metadata: $ref: '#/components/schemas/PersonalInfoMetadata' required: - firstName - lastName - email - birthDate - country - address1 - city - state - postalCode - statuses LowIncomeStatus: type: string enum: - SNAP_BENEFITS - OTHER_GOVERNMENT_ASSISTANCE MarketConsent: type: object description: The current market consent configuration data for the program being used for a verification properties: enabled: type: boolean description: The value whether or not market consent is enabled required: type: boolean description: The value that makes market consent to be mandatory or not message: type: string description: The message to display in the verification required: - enabled - required - message MarketplaceSubject: type: object description: A marketplace user to be verified properties: deviceFingerprintHash: description: The device fingerprint collected for the person being verified type: string email: $ref: '#/components/schemas/ValidEmail' ipAddress: $ref: '#/components/schemas/IPV4Address' ipAddressExtended: $ref: '#/components/schemas/IPAddress' description: supersedes the 'ipAddress' field externalUserId: description: An identifier stored with the verification for external reference type: string email2: $ref: '#/components/schemas/ValidEmail' phoneNumber: $ref: '#/components/schemas/ValidPhoneNumber' locale: $ref: '#/components/schemas/ValidLocale' metadata: $ref: '#/components/schemas/PersonalInfoMetadata' required: - email MedicalProfessional: type: object description: A medical professional to be verified properties: firstName: description: The first name of the person being verified type: string lastName: description: The last name of the person being verified type: string deviceFingerprintHash: description: The device fingerprint collected for the person being verified type: string email: $ref: '#/components/schemas/ValidEmail' birthDate: $ref: '#/components/schemas/ValidBirthDate' postalCode: type: string description: The postal code for the person being verified status: deprecated: true $ref: '#/components/schemas/MedicalProfessionalStatus' statuses: type: array description: List of medical professional statuses. A single value will be interpreted as a list with one entry. items: $ref: '#/components/schemas/MedicalProfessionalStatus' country: description: The country of residence of the person being verified $ref: '#/components/schemas/ValidCountryCode' organization: $ref: '#/components/schemas/Organization' phoneNumber: $ref: '#/components/schemas/ValidPhoneNumber' memberId: description: The unique member ID number for the person being verified type: string locale: $ref: '#/components/schemas/ValidLocale' ipAddress: $ref: '#/components/schemas/IPV4Address' ipAddressExtended: $ref: '#/components/schemas/IPAddress' description: supersedes the 'ipAddress' field externalUserId: description: An identifier stored with the verification for external reference type: string email2: $ref: '#/components/schemas/ValidEmail' metadata: $ref: '#/components/schemas/PersonalInfoMetadata' required: - firstName - lastName - email - birthDate - postalCode - organization - statuses MedicalProfessionalStatus: type: string enum: - NURSE - DOCTOR - DENTIST - PHARMACIST - OTHER_HEALTH_WORKER Member: type: object description: A member to be verified properties: firstName: description: The first name of the person being verified type: string lastName: description: The last name of the person being verified type: string deviceFingerprintHash: description: The device fingerprint collected for the person being verified type: string email: $ref: '#/components/schemas/ValidEmail' birthDate: $ref: '#/components/schemas/ValidBirthDate' memberId: description: The unique member ID number for the person being verified type: string address1: description: The street address for the person being verified type: string city: description: The city for the person being verified type: string state: description: The 2 digit state code for the person being verified type: string postalCode: description: The postal code for the person being verified type: string country: $ref: '#/components/schemas/ValidCountryCode' organization: $ref: '#/components/schemas/Organization' phoneNumber: $ref: '#/components/schemas/ValidPhoneNumber' locale: $ref: '#/components/schemas/ValidLocale' ipAddress: $ref: '#/components/schemas/IPV4Address' ipAddressExtended: $ref: '#/components/schemas/IPAddress' description: supersedes the 'ipAddress' field externalUserId: description: An identifier stored with the verification for external reference type: string email2: $ref: '#/components/schemas/ValidEmail' metadata: $ref: '#/components/schemas/PersonalInfoMetadata' required: - firstName - lastName - email - organization Mover: type: object description: A mover to be verified properties: firstName: description: The first name of the person being verified type: string lastName: description: The last name of the person being verified type: string address1: description: The street address for the person being verified type: string postalCode: type: string description: The postal code for the person being verified email: $ref: '#/components/schemas/ValidEmail' birthDate: $ref: '#/components/schemas/ValidBirthDate' deviceFingerprintHash: description: The device fingerprint collected for the person being verified type: string statuses: type: array description: List of mover statuses. A single value will be interpreted as a list with one entry. items: $ref: '#/components/schemas/MoverStatus' country: $ref: '#/components/schemas/ValidCountryCode' phoneNumber: $ref: '#/components/schemas/ValidPhoneNumber' locale: $ref: '#/components/schemas/ValidLocale' ipAddress: $ref: '#/components/schemas/IPV4Address' ipAddressExtended: $ref: '#/components/schemas/IPAddress' metadata: $ref: '#/components/schemas/PersonalInfoMetadata' required: - firstName - lastName - email - address1 - postalCode - statuses MoverStatus: type: string enum: - HOME_BUYER - OTHER_MOVER MilitaryStatus: type: string enum: - ACTIVE_DUTY - VETERAN - RESERVIST - MILITARY_RETIREE - MILITARY_FAMILY - GOLD_STAR_FAMILY MilitaryStatusRequest: type: object description: The military status for a military member being verified properties: status: $ref: '#/components/schemas/MilitaryStatus' required: - status NewAgeVerificationResponse: type: object allOf: - $ref: '#/components/schemas/NewVerificationResponse' description: >- A representation of a new verification that provides the segment being verified, a list of available statuses for the program, and the URL to submit data to properties: minAge: type: integer description: The minimum age of the subject in order to be verified. maxAge: type: integer description: The maximum age of the subject in order to be verified. required: - verificationId - currentStep - submissionUrl - minAge - maxAge NewCollectIdentifierResponse: type: object allOf: - $ref: '#/components/schemas/NewVerificationResponse' description: >- A representation of a new verification that provides the segment being verified, a list of available statuses for the program, and the URL to submit data to properties: identifierField: type: object properties: key: type: string description: The identifier field for verification required: - verificationId - currentStep - submissionUrl - identifierField NewEmploymentVerificationResponse: type: object allOf: - $ref: '#/components/schemas/NewVerificationResponse' description: >- A representation of a new verification that provides the segment being verified, a list of available statuses for the program, and the URL to submit data to properties: availableStatuses: type: array description: The list of statuses that are available for selection by the program items: $ref: '#/components/schemas/EmploymentStatus' required: - verificationId - currentStep - submissionUrl - availableStatuses NewFirstResponderVerificationResponse: type: object allOf: - $ref: '#/components/schemas/NewVerificationResponse' description: >- A representation of a new verification that provides the segment being verified, a list of available statuses for the program, and the URL to submit data to properties: availableStatuses: type: array description: The list of statuses that are available for selection by the program items: $ref: '#/components/schemas/FirstResponderStatus' required: - verificationId - currentStep - submissionUrl - availableStatuses NewMarketplaceVerificationRequest: type: object description: The program ID, tracking ID, and subject to track for a marketplace verification properties: programId: type: string description: The program ID to use for the verification trackingId: type: string description: An program-scope unique ID specified by the consumer subject: $ref: '#/components/schemas/MarketplaceSubject' required: - programId - trackingId - subject NewMarketplaceVerificationResponse: type: object allOf: - $ref: '#/components/schemas/NewVerificationResponse' description: >- A representation of a new verification that provides the segment being verified, a list of available statuses for the program, and the URL to submit data to properties: verificationToken: type: string description: The verification token that can be used to verify the user required: - verificationId - currentStep - submissionUrl - verificationToken NewMedicalProfessionalVerificationResponse: type: object allOf: - $ref: '#/components/schemas/NewVerificationResponse' description: >- A representation of a new verification that provides the segment being verified, a list of available statuses for the program, and the URL to submit data to properties: availableStatuses: type: array description: The list of statuses that are available for selection by the program items: $ref: '#/components/schemas/MedicalProfessionalStatus' required: - verificationId - currentStep - submissionUrl - availableStatuses NewMilitaryVerificationResponse: type: object allOf: - $ref: '#/components/schemas/NewVerificationResponse' description: >- A representation of a new verification that provides the segment being verified, a list of available statuses for the program, and the URL to submit data to properties: availableStatuses: type: array description: The list of statuses that are available for selection by the program items: $ref: '#/components/schemas/MilitaryStatus' required: - verificationId - currentStep - submissionUrl - availableStatuses NewVerificationRequest: type: object description: The program ID to use for the verification properties: programId: type: string description: The program ID to use for the verification trackingId: type: string description: An optional ID specified by the consumer to support conversion tracking installPageUrl: type: string description: The URL for the page installing the verification form metadata: $ref: '#/components/schemas/PersonalInfoMetadata' required: - programId NewVerificationResponse: type: object description: A representation of a new verification that provides the segment being verified and the URL to submit data to properties: verificationId: type: string description: The unique identifier for the ongoing verification currentStep: $ref: '#/components/schemas/VerificationStep' submissionUrl: type: string description: The url to use for submitting person data errorIds: type: array description: The list of errors that occurred, if any items: $ref: '#/components/schemas/ErrorId' segment: $ref: '#/components/schemas/Segment' subsegment: $ref: '#/components/schemas/SubSegment' locale: $ref: '#/components/schemas/ValidLocale' country: $ref: '#/components/schemas/ValidCountryCode' created: type: integer format: int64 updated: type: integer format: int64 required: - verificationId - currentStep - submissionUrl OfferType: type: string description: The type of reward/offer enum: - staticCode - autogenCode - noCode - rewardPool default: autogenCode Organization: type: object description: An organization that can be used for instant verification of various segments (Student, Teacher, Military, etc.) properties: name: type: string description: The name of the organization id: type: integer format: int64 description: >- The unique identifier for the organization. This will be ignored if idExtended is specified. idExtended: type: string description: >- The unique identifier for the Organization within the Organization service. source: type: string description: >- The service containing information about the Organization. This should be omitted when SheerID is the Organization service. $ref: '#/components/schemas/OrganizationRemoteSource' required: - id - name OrganizationRemoteSource: type: string description: An identifier used for disambiguating the service which is providing the organization information. enum: - EMPLOYER - PLACE OrganizationType: type: string enum: - UNIVERSITY - POST_SECONDARY - MEMBERSHIP - MILITARY - FIRST_RESPONDER - MEDICAL - NON_PROFIT - CORPORATE - K12 - AGE_ID - HIGH_SCHOOL - NONE PendingMessages: type: object description: Messages to be shown when the verification reaches the pending step. additionalProperties: type: string properties: titleCountdown: type: string description: The title to show when showing the countdown timer for a user awaiting document review. titleReview: type: string description: The title to show when the user is awaiting document and the countdown timer has lapsed. subtitleCountdown: type: string description: The subtitle to show when showing the countdown timer for a user awaiting document review. turnaroundTime: type: string description: The subtitle to show when the user is awaiting document and the countdown timer has lapsed. subtitle2: type: string description: Messages indicating what the user can do while the document is being reviewed. required: - titleCountdown - titleReview - subtitleCountdown - turnaroundTime - subtitle2 PendingResponse: type: object description: The verification is undergoing an asynchronous process (e.g. document review). A polling URL is provided to get the current status. properties: verificationId: type: string description: >- The unique ID for the [VerificationRequest](#!/components/schemas/VerificationRequest) associated with this response statusUrl: type: string description: The url to poll to determine the result of the document review awaitingStep: deprecated: true description: This field is deprecated, instead find the awaiting step in the 'lastResponse' field oneOf: - $ref: '#/components/schemas/VerificationStep' maxReviewTime: $ref: '#/components/schemas/ReviewTime' estimatedReviewTime: $ref: '#/components/schemas/EstimatedReviewTime' currentStep: $ref: '#/components/schemas/VerificationStep' errorIds: type: array description: The list of errors that occurred, if any items: $ref: '#/components/schemas/ErrorId' segment: $ref: '#/components/schemas/Segment' subsegment: $ref: '#/components/schemas/SubSegment' locale: $ref: '#/components/schemas/ValidLocale' country: $ref: '#/components/schemas/ValidCountryCode' created: type: integer format: int64 updated: type: integer format: int64 lastResponse: $ref: '#/components/schemas/VerificationResponse' required: - verificationId - currentStep - statusUrl PersonalInfoMessages: type: object properties: title: type: string description: The title for the collect personal information step subtitle: type: string description: The subtitle for the collect personal information step required: - title - subtitle PersonalInfoMetadata: type: object additionalProperties: type: string maxLength: 10000 maxProperties: 20 description: A collection of custom metadata to be stored with the verification PossibleStepsResponse: type: object description: The possible steps for a program properties: steps: type: array items: $ref: '#/components/schemas/VerificationStep' required: - steps ProgramConfig: type: object description: The current configuration data for a program. ProgramMessages: type: object properties: companyName: type: string description: The company name associated with the program. This is a dynamic value (changes per program) lowRewardPool: type: string description: The message to show when there are not many rewards available for the program optIn: type: string default: The message shown when the marketing opt-in checkbox is presented step: $ref: '#/components/schemas/StepMessages' errorId: type: object additionalProperties: type: string description: The messages that should be shown for each ErrorId required: - companyName - lowRewardPool - optIn - step - errorId ProgramTheme: type: object description: Any messaging or CSS that was configured in the self service tool for the program being used for verification properties: intl: $ref: '#/components/schemas/Internationalization' customCss: type: string description: Custom CSS to use when rendering the verification form logoUrl: type: string description: URL of the logo associated with this program privacyPolicyUrl: type: string description: The URL to use for the privacy policy. isTestMode: type: boolean description: Whether or not the program is in test mode openOrgSearchEnabled: type: boolean description: Flag indicating whether the end-user can supply an unknown org when attempting to verify. isSmsNotifierConfigured: type: boolean description: Flag indicating whether this program has an SMS Notifier configured. smsLoopEnabled: type: boolean description: Flag indicating whether this program requires SMS loop where phoneNumber is required. docUploadEnabled: type: boolean description: Flag indicating whether this program may perform the doc upload step. emailLoopEnabled: type: boolean description: Flag indicating whether this program may perform the email loop step. ssoEnabled: type: boolean description: Flag indicating whether this program may perform the SSO step. overrideEnabled: type: boolean description: Flag indicating whether this program may perform the override step. threatMetrixEnabled: type: boolean description: Flag indicating whether this program is configured to use ThreatMetrix for additional fraud detection. ipqsDeviceFingerprintEnabled: type: boolean description: Flag indicating whether this program is configured to use IPQS Device Fingerprint for additional fraud detection. strictMilitaryValidationEnabled: type: boolean description: Flag indicating whether this program uses strict military validation criteria. remainingRewardCodes: type: integer description: The number of remaining reward codes for the program. Will be null if this should not be shown to the user. config: $ref: '#/components/schemas/ProgramVerificationConfig' required: - intl - customCss - logoUrl - privacyPolicyUrl - isTestMode - config - smsLoopEnabled - docUploadEnabled - emailLoopEnabled - ssoEnabled - overrideEnabled - remainingRewardCodes ProgramVerificationConfig: type: object description: The current configuration data for the program being used for a verification properties: countries: type: array description: The list of countries that have been enabled for this program items: type: string description: A country that has been configured as acceptable for the program locales: type: array description: The list of available locales that have been configured for this program items: type: string description: A locale (e.g. 'en-US') maxReviewTime: $ref: '#/components/schemas/ReviewTime' estimatedReviewTime: $ref: '#/components/schemas/EstimatedReviewTime' marketConsent: $ref: '#/components/schemas/MarketConsent' customMetadata: $ref: '#/components/schemas/CustomMetadata' customFaqLink: type: string description: Location for faq link orgRemoteSource: description: Remote source for organization $ref: '#/components/schemas/OrganizationRemoteSource' orgSearchUrl: type: string description: The URL to use for finding organizations for verification orgTypes: type: array description: A list of eligible organization types for the program items: $ref: '#/components/schemas/OrganizationType' orgSearchCountryTags: type: object description: A map of country codes to the org search tags that should be applied when searching for organizations. additionalProperties: type: array description: The organization search tags to apply for a given country. items: type: string rewardDisplay: type: array description: An list of of ways that reward should be displayed. items: type: string enum: - TEXT - QR - ITF - UPC_A - CODE_128 - PDF417 excludedOrganizationIds: type: array description: A list of organization IDs that have been exluded from the program items: type: integer format: int64 brandInfo: $ref: '#/components/schemas/BrandInfo' segment: $ref: '#/components/schemas/Segment' offerType: $ref: '#/components/schemas/OfferType' maxAge: type: integer description: The maximum age allowed for a user to submit a verification. Will be null if no maximum is set. minAge: type: integer description: The minimum age allowed for a user to submit a verification. Will be null if no minimum is set. onfidoReportNames: type: array items: type: string description: The report names to support within onfido. onfidoIncludedCountries: type: array items: type: string description: The countries to support within onfido. customProgramData: type: object additionalProperties: type: string description: Custom program data needed for the implementation. required: - countries - locales - maxReviewTime - estimatedReviewTime - marketConsent - customMetadata - customFaqLink - orgSearchUrl - orgTypes - excludedOrganizationIds - brandInfo - offerType RejectionReason: type: string enum: - CUSTOM_VALUE_OTHER - DOCUMENT_DATE_OTHER - DOCUMENT_EXPIRED - DOCUMENT_LIKELY_FRAUD - DOCUMENT_PASSWORD_PROTECTED - DOCUMENT_STATUS_OTHER - DOCUMENT_TOO_FUTURE - DOCUMENT_UNSUPPORTED - DOCUMENT_UNREADABLE - DOCUMENT_VALID_OTHER - INELIGIBLE_JOB_TITLE - INSUFFICIENT_CUSTOM_VALUE - INSUFFICIENT_DOCUMENT_DATE - INSUFFICIENT_STATUS - MISMATCH_BIRTHDATE - MISMATCH_CUSTOM_VALUE - MISMATCH_PERSON_FIRST_NAME - MISMATCH_PERSON_LAST_NAME - MISMATCH_ORGANIZATION_COUNTRY - MISMATCH_ORGANIZATION_NAME - MISMATCH_STATUS - MISSING_CUSTOM_VALUE - MISSING_DOCUMENT_DATE - MISSING_INFORMATION_BIRTHDATE - MISSING_INFORMATION_ORGANIZATION_NAME - MISSING_PERSON_FIRST_NAME - MISSING_PERSON_LAST_NAME - ORGANIZATION_NAME_OTHER - OUT_OF_RANGE_BIRTHDATE - PERSON_BIRTHDATE_OTHER - PERSON_FIRST_NAME_OTHER - PERSON_LAST_NAME_OTHER - DOCUMENT_HANDWRITTEN - DOCUMENT_OUTDATED - DOCUMENT_OUTDATED_FACULTY - INELIGIBLE_ORGANIZATION - INELIGIBLE_PERSON_HIGH_SCHOOL_STUDENT - MISSING_INFORMATION - MISSING_INFORMATION_AFFILIATION_US_ARMED_FORCES - MISSING_INFORMATION_PERSON_NAME - MISSING_INFORMATION_UNIVERSITY_ENROLLMENT - MISSING_OR_MISMATCH_JOB_TITLE - MISMATCH_COMPANY_NAME_OR_ADDRESS - MISMATCH_PERSON_NAME - MISMATCH_ORGANIZATION - OTHER_CONTACT_US - PAYSTUB_OUTDATED_LAST_30_DAYS - MISSING_EBT_CARD_NUMBER - MISMATCH_EBT_CARD_NUMBER - INSUFFICIENT_EBT_CARD_NUMBER - EBT_CARD_NUMBER_OTHER ReportStatus: type: string enum: - PENDING - COMPLETE - ERROR - DELETED ReportStatusResponse: type: object properties: id: type: string status: $ref: '#/components/schemas/ReportStatus' statusUrl: type: string format: uri retrievalUrl: type: string format: uri requester: type: string created: type: integer format: int64 ReviewTime: type: string description: The maximum amount of time a review can take enum: - 2_MIN - 20_MIN - 2_HRS - 24_HRS - 2_DAY - 3_DAY Segment: type: string description: The market segment being verified enum: - student - teacher - military - senior - age - firstResponder - medical - employment - marketplace - member - licensedProfessional - recentMover - other Senior: type: object description: A senior to be verified properties: firstName: description: The first name of the person being verified type: string lastName: description: The last name of the person being verified type: string deviceFingerprintHash: description: The device fingerprint collected for the person being verified type: string email: $ref: '#/components/schemas/ValidEmail' birthDate: $ref: '#/components/schemas/ValidBirthDate' phoneNumber: $ref: '#/components/schemas/ValidPhoneNumber' locale: $ref: '#/components/schemas/ValidLocale' postalCode: type: string description: The postal code for the person being verified ipAddress: $ref: '#/components/schemas/IPV4Address' ipAddressExtended: $ref: '#/components/schemas/IPAddress' description: supersedes the 'ipAddress' field externalUserId: description: An identifier stored with the verification for external reference type: string email2: $ref: '#/components/schemas/ValidEmail' metadata: $ref: '#/components/schemas/PersonalInfoMetadata' required: - firstName - lastName - email - birthDate - postalCode SMSCode: type: object description: The SMS code that was sent to the user. properties: smsCode: type: string description: The SMS code that was sent to the user. deviceFingerprintHash: description: The device fingerprint collected for the person being verified type: string required: - smsCode SMSLoopResponse: type: object description: The user was sent an SMS message with a verification code that must be provided. properties: verificationId: type: string description: >- The unique ID for the [VerificationRequest](#!/components/schemas/VerificationRequest) associated with this response retryUrl: type: string description: The url to hit if a new SMS code should be generated and sent to the person being verified. submissionUrl: type: string description: The url to use for submitting the SMS loop token currentStep: $ref: '#/components/schemas/VerificationStep' errorIds: type: array description: The list of errors that occurred, if any items: $ref: '#/components/schemas/ErrorId' segment: $ref: '#/components/schemas/Segment' subsegment: $ref: '#/components/schemas/SubSegment' locale: $ref: '#/components/schemas/ValidLocale' country: $ref: '#/components/schemas/ValidCountryCode' created: type: integer format: int64 updated: type: integer format: int64 required: - verificationId - currentStep - retryUrl - submissionUrl Age: type: object description: A person to be age-verified properties: firstName: description: The first name of the person being verified. type: string lastName: description: The last name of the person being verified. type: string email: $ref: '#/components/schemas/ValidEmail' birthDate: $ref: '#/components/schemas/ValidBirthDate' phoneNumber: allOf: - $ref: '#/components/schemas/ValidPhoneNumber' description: The phone number of the person being verified. Required for instant verification. postalCode: type: string description: The postal code of the person being verified. Required for instant verification. city: description: The city of the person being verified. type: string address1: description: The home street address of the person being verified. Required for instant verification. type: string country: allOf: - $ref: '#/components/schemas/ValidCountryCode' description: The country code of the person being verified. Required for instant verification. deviceFingerprintHash: description: The device fingerprint collected for the person being verified type: string locale: $ref: '#/components/schemas/ValidLocale' ipAddress: $ref: '#/components/schemas/IPV4Address' ipAddressExtended: $ref: '#/components/schemas/IPAddress' description: supersedes the 'ipAddress' field externalUserId: description: An identifier stored with the verification for external reference type: string email2: $ref: '#/components/schemas/ValidEmail' metadata: $ref: '#/components/schemas/PersonalInfoMetadata' marketConsent: description: Whenever the market consent is accepted type: boolean required: - firstName - lastName - email - birthDate - phoneNumber SsoResponse: type: object description: The user can visit an SSO login portal at the provided login url. properties: verificationId: type: string description: >- The unique ID for the [VerificationRequest](#!/components/schemas/VerificationRequest) associated with this response loginUrl: type: string description: The url to send the user to in order to perform an SSO login to verify. cancelUrl: type: string description: The url to send a DELETE request to in order to cancel an ongoing SSO login attempt. currentStep: $ref: '#/components/schemas/VerificationStep' errorIds: type: array description: The list of errors that occurred, if any items: $ref: '#/components/schemas/ErrorId' segment: $ref: '#/components/schemas/Segment' subsegment: $ref: '#/components/schemas/SubSegment' locale: $ref: '#/components/schemas/ValidLocale' country: $ref: '#/components/schemas/ValidCountryCode' created: type: integer format: int64 updated: type: integer format: int64 required: - verificationId - currentStep - loginUrl - cancelUrl StepMessages: type: object properties: personalInfo: $ref: '#/components/schemas/PersonalInfoMessages' docUpload: $ref: '#/components/schemas/DocUploadMessages' success: $ref: '#/components/schemas/SuccessMessages' pending: $ref: '#/components/schemas/PendingMessages' consolation: $ref: '#/components/schemas/ConsolationMessages' emailLoop: $ref: '#/components/schemas/EmailLoopMessages' sso: $ref: '#/components/schemas/SsoMessages' error: $ref: '#/components/schemas/ErrorMessages' required: - personalInfo - docUpload - success - pending - sso - consolation - error GenericVerificationSubject: type: object description: A person to be verified properties: firstName: description: The first name of the person being verified type: string lastName: description: The last name of the person being verified type: string address1: description: The home street address of the person being verified. Required for instant verification. type: string city: description: The city of the person being verified. type: string state: type: string description: The two character state code of the organization. stateCode: type: string description: The two character state code for the person being verified. Provide when open org is submitted, i.e. organization id = 0 deviceFingerprintHash: description: The device fingerprint collected for the person being verified type: string dischargeDate: type: string format: date description: The date the person being verified was discharged from the military driverLicenseNumber: description: The drivers license number of an individual; non-alphanumeric characters are ignored type: string activeDutyStartDate: type: string format: date description: The date the person being verified started active duty in the military country: allOf: - $ref: '#/components/schemas/ValidCountryCode' description: The country code of the person being verified. Required for instant verification. memberId: description: The unique member ID number for the person being verified type: string verificationToken: description: The verification token that can be used to verify the user type: string postalCode: type: string description: The postal code for the person being verified trackingId: type: string description: The tracking ID that was assigned to this verification ebtCardNumber: description: The number of an EBT card. type: string statuses: type: array description: List of available statuses. items: anyOf: - $ref: '#/components/schemas/FirstResponderStatus' - $ref: '#/components/schemas/MedicalProfessionalStatus' - $ref: '#/components/schemas/LowIncomeStatus' - $ref: '#/components/schemas/LicensedProfessionalStatus' - $ref: '#/components/schemas/EmploymentStatus' - $ref: '#/components/schemas/MilitaryStatus' - $ref: '#/components/schemas/MoverStatus' email: $ref: '#/components/schemas/ValidEmail' birthDate: $ref: '#/components/schemas/ValidBirthDate' organization: $ref: '#/components/schemas/Organization' ipAddress: $ref: '#/components/schemas/IPV4Address' ipAddressExtended: $ref: '#/components/schemas/IPAddress' description: supersedes the 'ipAddress' field externalUserId: description: An identifier stored with the verification for external reference type: string phoneNumber: $ref: '#/components/schemas/ValidPhoneNumber' socialSecurityNumber: $ref: '#/components/schemas/ValidSocialSecurityNumber' locale: $ref: '#/components/schemas/ValidLocale' metadata: $ref: '#/components/schemas/PersonalInfoMetadata' SsoMessages: type: object description: Messages for the SSO step properties: title: type: string description: The title on the page when the SSO step is reached. subtitle: type: string description: The substitle on the page when the SSO step is reached. login: type: string description: The button text prompting the user to login. required: - title - subtitle - login Student: type: object description: A student to be verified properties: firstName: description: The first name of the person being verified type: string lastName: description: The last name of the person being verified type: string deviceFingerprintHash: description: The device fingerprint collected for the person being verified type: string email: $ref: '#/components/schemas/ValidEmail' birthDate: $ref: '#/components/schemas/ValidBirthDate' organization: $ref: '#/components/schemas/Organization' ipAddress: $ref: '#/components/schemas/IPV4Address' ipAddressExtended: $ref: '#/components/schemas/IPAddress' description: supersedes the 'ipAddress' field externalUserId: description: An identifier stored with the verification for external reference type: string email2: $ref: '#/components/schemas/ValidEmail' phoneNumber: $ref: '#/components/schemas/ValidPhoneNumber' locale: $ref: '#/components/schemas/ValidLocale' metadata: $ref: '#/components/schemas/PersonalInfoMetadata' required: - firstName - lastName - email - birthDate - organization SubSegment: type: string description: The subsegment being verified enum: - activeDuty - veteran - retiree - reservist - militaryFamily - goldStarFamily - police - fireFighter - searchAndRescue - emt - employee - homeBuyer - otherMover - facultyHighSchool - facultyUniversity - facultyPostSecondary - facultyK12 - fullAndPartTimeUniversity - collegeBound - highSchool - postSecondary - nurse - doctor - otherHealthWorker - dentist - pharmacist - generalContractor - snapBenefits - otherGovernmentAssistance - architect - interiorDesigner - librarian - childCareWorker - veterinarian - licensedRealEstateAgent - licensedCosmetologist SuccessMessages: type: object additionalProperties: type: string nullable: true properties: title: type: string description: The title for the success step subtitle: type: string description: The subtitle for the success step redirectUrl: type: string deprecated: true nullable: true description: Deprecated. Use the redirectUrl property of the [SuccessResponse](#!/components/schemas/SuccessResponse) instead redirectButtonText: type: string description: The text to show on the redirect button if a redirect URL was configured emailNotification: type: string description: The text to indicate to the user they should check their email for the reward code required: - title - subtitle - redirectButtonText - redirectUrl - emailNotification SuccessResponse: type: object description: A successful verification, providing the reward codes to provide to the verified user properties: verificationId: type: string description: >- The unique ID for the [VerificationRequest](#!/components/schemas/VerificationRequest) associated with this response rewardCode: type: string description: The reward code to present to the verified user deprecated: true rewardData: type: object additionalProperties: type: string maxLength: 10000 maxProperties: 20 description: A collection of all reward codes and values stored in the verification. redirectUrl: type: string description: The URL to use for redirecting the verified user once a reward has been given. nullable: true currentStep: $ref: '#/components/schemas/VerificationStep' errorIds: type: array description: The list of errors that occurred, if any items: $ref: '#/components/schemas/ErrorId' segment: $ref: '#/components/schemas/Segment' subSegment: $ref: '#/components/schemas/SubSegment' locale: $ref: '#/components/schemas/ValidLocale' country: $ref: '#/components/schemas/ValidCountryCode' created: type: integer format: int64 updated: type: integer format: int64 consumerInfoState: $ref: '#/components/schemas/ConsumerInfoState' required: - verificationId - rewardCode - currentStep - redirectUrl SystemErrorMessage: type: object description: An error that occurred with no verification context properties: systemErrorMessage: type: string description: The error that occurred errorIds: type: array items: $ref: '#/components/schemas/ErrorId' nullable: true required: - systemErrorMessage Teacher: type: object description: A teacher to be verified properties: firstName: description: The first name of the person being verified type: string lastName: description: The last name of the person being verified type: string deviceFingerprintHash: description: The device fingerprint collected for the person being verified type: string email: $ref: '#/components/schemas/ValidEmail' organization: $ref: '#/components/schemas/Organization' phoneNumber: $ref: '#/components/schemas/ValidPhoneNumber' birthDate: $ref: '#/components/schemas/ValidBirthDate' locale: $ref: '#/components/schemas/ValidLocale' postalCode: type: string description: The postal code for the person being verified. Provide when open org is submitted, i.e. organization id = 0 ipAddress: $ref: '#/components/schemas/IPV4Address' ipAddressExtended: $ref: '#/components/schemas/IPAddress' description: supersedes the 'ipAddress' field externalUserId: description: An identifier stored with the verification for external reference type: string email2: $ref: '#/components/schemas/ValidEmail' metadata: $ref: '#/components/schemas/PersonalInfoMetadata' required: - firstName - lastName - email - organization ValidBirthDate: description: The date of birth of the person being verified (format YYYY-MM-DD). Date must be greater than `1900-01-01`. type: string format: date SocialSecurityNumberRequest: type: object description: A social security number to be verified properties: socialSecurityNumber: $ref: '#/components/schemas/ValidSocialSecurityNumber' required: - socialSecurityNumber CancellableResponse: type: object description: >- A step in the verification flow that can be canceled. When canceled, the server will respond with a different step to try, such as docReview. properties: verificationId: type: string description: The unique identifier for the ongoing verification currentStep: $ref: '#/components/schemas/VerificationStep' submissionUrl: type: string description: The url to use for submitting person data errorIds: type: array description: The list of errors that occurred, if any items: $ref: '#/components/schemas/ErrorId' segment: $ref: '#/components/schemas/Segment' subsegment: $ref: '#/components/schemas/SubSegment' locale: $ref: '#/components/schemas/ValidLocale' country: $ref: '#/components/schemas/ValidCountryCode' created: type: integer format: int64 updated: type: integer format: int64 cancelUrl: type: string description: The url to send a DELETE request to. required: - verificationId - currentStep - submissionUrl - cancelUrl ValidSocialSecurityNumber: type: number description: The social security number of the person to be verified pattern: '^[0-9]{9}$' ValidEmail: description: The email address of the person being verified type: string pattern: '(^\s*?[A-Za-z0-9!#$%&''*+\/=?^_`{|}~-]+(\.[A-Za-z0-9!#$%&''*+\/=?^_`{|}~-]+)*@([A-Za-z0-9!#$%&''*+\/=?^_`{|}~-]+(\.[A-Za-z0-9!#$%&''*+\/=?^_`{|}~-]+)+|\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])\s*?$)' ValidCountry: description: The country code of the person being verified type: string pattern: '^[A-Z]{2}$' ValidPhoneNumber: description: The phone number used for SMS messages type: string pattern: '\+?0*\d{10,}(x[0-9]{0,5})?' ValidCountryCode: description: The country code of the person being verified type: string pattern: '^[A-Z]{2}$' ValidLocale: description: The locale chosen by the user type: string pattern: '^[a-z]{2}-[A-Z]{2}$' VerificationDetails: type: object description: Detailed information about a given verification. Must have a valid API token to view. properties: created: type: integer format: int64 description: The date that the verification was created updated: type: integer format: int64 description: The date that the verification was updated programId: type: string description: The program ID that was used to create this verification trackingId: type: string description: The tracking ID that was assigned to this verification personId: type: string description: The person ID that was assigned to the person for this verification socialId: type: string description: The unique identifier that can be used to track social sharing of an offer lastResponse: $ref: '#/components/schemas/VerificationResponse' personInfo: $ref: '#/components/schemas/VerificationSubject' docUploadRejectionCount: type: number description: The number of times this verification had rejected document reviews docUploadRejectionReasons: type: array description: A list of all batches of rejection reasons in the order batches of documents were uploaded items: type: array items: $ref: '#/components/schemas/RejectionReason' confirmedSegments: type: array description: A list of all affiliations associated with this request items: $ref: '#/components/schemas/ConfirmedSegment' approvingVerificationTypes: type: array description: A list of all verification types that contributed to the final approved outcome. items: $ref: '#/components/schemas/ExternalVerificationType' verificationMethod: $ref: "#/components/schemas/VerificationMethod" required: - created - updated - programId - socialId - lastResponse - personInfo - docUploadRejectionCount - docUploadRejectionReasons - confirmedSubSegments - verificationMethod VerificationLimitRequest: type: object properties: quantity: type: integer description: The number of verifications to allow in a given time period days: type: integer description: The number of days the verification limit should be enacted required: - quantity - days VerificationReportRequest: type: object properties: format: type: string enum: - CSV startDate: type: string format: date-time endDate: type: string format: date-time isPiiIncluded: type: boolean description: 'Optional toggle for whether or not to include PII in report. User must have appropriate permissions to request PII. If this field is omitted, PII details will only be returned if requesting user has appropriate permissions.' piiReason: type: string description: 'Reason for requesting PII in the report. Required if isPiiIncluded=true.' verificationModeInclusion: $ref: "#/components/schemas/VerificationModeInclusion" programIds: type: array description: "Optional list of program ids belonging to the User's account. If provided, the report will only include verifications associated with the program ids requested." items: type: string countryCodes: type: array description: "Optional list of country codes. If provided, the report will only include verifications from the countries requested." items: type: string rewardEligibilities: type: array description: "Optional list of eligibility states. If provided, the report will only include verifications that resulted in those states requested." items: $ref: '#/components/schemas/RewardEligibility' communities: type: array description: "Optional list of affiliation types. If provided, the report will only include verifications of the affiliation types requested." items: $ref: "#/components/schemas/Community" metadataRowFilters: type: array description: >- Optional list of metadata key/value pairs. If provided, the report will only include verifications with metadata that contains all of the specified key/value pairs. See [List Report Fields](#tag/report/operation/listReportFields) to retrieve a list of available metadata keys. items: $ref: "#/components/schemas/RowFilter" standardFields: description: >- The list of standard field names to include in the report. See [List Report Fields](#tag/report/operation/listReportFields) to retrieve a list of available fields. type: array items: type: string personFields: description: >- The list of person data field names to include in the report. See [List Report Fields](#tag/report/operation/listReportFields) to retrieve a list of available fields. type: array items: type: string metadataFields: type: array description: >- The list of metadata field names to include in the report. See [List Report Fields](#tag/report/operation/listReportFields) to retrieve a list of available fields. items: type: string required: - format RewardEligibility: type: string enum: - ELIGIBLE - INELIGIBLE Community: type: string enum: - "Military" - "Education" - "Student" - "Teacher / Faculty" - "Employment" - "EMT" - "Firefighter" - "Police" - "First Responder" - "Member" - "Business" - "Non Profit" - "Nurse" - "Doctor" - "Dentist" - "Pharmacist" - "Other Healthcare" - "Medical" - "Age" - "Cosmetologist" - "Real Estate Agent" - "Identity" - "Veterinarian" - "Child Care Worker" - "Recent Mover" - "Low Income" - "Other" VerificationModeInclusion: description: Which verification modes to include in the verification report. type: string enum: - ALL - LIVE - TEST default: LIVE VerificationResponse: type: object description: The result of a verification step oneOf: - $ref: '#/components/schemas/SuccessResponse' - $ref: '#/components/schemas/NewVerificationResponse' - $ref: '#/components/schemas/NewAgeVerificationResponse' - $ref: '#/components/schemas/NewMilitaryVerificationResponse' - $ref: '#/components/schemas/NewFirstResponderVerificationResponse' - $ref: '#/components/schemas/NewMedicalProfessionalVerificationResponse' - $ref: '#/components/schemas/NewEmploymentVerificationResponse' - $ref: '#/components/schemas/NewMarketplaceVerificationResponse' - $ref: '#/components/schemas/DocumentReviewResponse' - $ref: '#/components/schemas/PendingResponse' - $ref: '#/components/schemas/ErrorResponse' - $ref: '#/components/schemas/SsoResponse' - $ref: '#/components/schemas/SMSLoopResponse' - $ref: '#/components/schemas/CancellableResponse' - $ref: '#/components/schemas/EmailLoopResponse' - $ref: '#/components/schemas/ConsolationResponse' - $ref: '#/components/schemas/OverrideResponse' - $ref: '#/components/schemas/NewCollectIdentifierResponse' - $ref: '#/components/schemas/CompleteAuthenticationResponse' VerificationStep: type: string enum: - collectStudentPersonalInfo - collectActiveMilitaryPersonalInfo - collectInactiveMilitaryPersonalInfo - collectTeacherPersonalInfo - collectSeniorPersonalInfo - collectAgePersonalInfo - collectFirstResponderPersonalInfo - collectMedicalProfessionalPersonalInfo - collectEmployeePersonalInfo - collectLicensedProfessionalInfo - collectMoverPersonalInfo - collectLowIncomePersonalInfo - collectMilitaryStatus - collectMarketplaceToken - collectSocialSecurityNumber - collectIdentifier - completeAuthentication - docUpload - sso - success - error - pending - emailLoop - smsLoop - consolation - override VerificationSubject: type: object description: A subject being verified oneOf: - $ref: '#/components/schemas/Student' - $ref: '#/components/schemas/Teacher' - $ref: '#/components/schemas/ActiveMilitary' - $ref: '#/components/schemas/InactiveMilitary' - $ref: '#/components/schemas/Senior' - $ref: '#/components/schemas/Age' - $ref: '#/components/schemas/FirstResponder' - $ref: '#/components/schemas/MedicalProfessional' - $ref: '#/components/schemas/Employee' - $ref: '#/components/schemas/MarketplaceSubject' - $ref: '#/components/schemas/VerificationToken' - $ref: '#/components/schemas/LicensedProfessional' - $ref: '#/components/schemas/Mover' - $ref: '#/components/schemas/LowIncome' VerificationToken: type: object description: A verification token used to complete a marketplace verification properties: verificationToken: description: The verification token that can be used to verify the user type: string required: - verificationToken WebhookRequest: type: object properties: callbackUri: type: string description: The URI to POST to on verification events required: - callbackUri ReportFieldSet: type: object properties: scope: type: string description: >- The scope to which the set of fields belong. Possible values are: * STANDARD - The base fields available to all reports. * PII - The fields containing personally identifiable information that are available to the user's account. * METADATA - The default and custom metadata fields available to the user's account and programs. enum: - STANDARD - PII - METADATA fields: type: array description: A list of field objects with each of their the names as they appear in reports and descriptions. items: $ref: '#/components/schemas/ReportField' required: - scope - fields ReportField: type: object properties: name: description: The name used to identify the report field type: string columnHeading: description: The column heading of the field as it will appear in generated reports type: string description: description: Explanation of the field's meaning and usage type: string required: - columnHeading RowFilter: type: object properties: field: type: string value: type: string EmailLoopState: type: string enum: - collectOrganizationEmail - pending SendLinkRequest: type: object properties: phoneNumber: $ref: '#/components/schemas/ValidPhoneNumber' externalUserId: description: An identifier stored with the verification for external reference type: string required: - phoneNumber examples: activeMilitaryCollectInfo: value: verificationId: '111111111111111111111111' currentStep: collectActiveMilitaryPersonalInfo errorIds: [ ] segment: military subSegment: activeDuty locale: en-US country: null submissionUrl: /rest/v2/verification/111111111111111111111111/collectActiveMilitaryPersonalInfo instantMatchAttempts: 0 activeMilitaryCollectInfoInvalid: value: verificationId: '111111111111111111111111' currentStep: collectActiveMilitaryPersonalInfo submissionUrl: /rest/v2/verification/111111111111111111111111/collectActiveMilitaryPersonalInfo errorIds: [ 'invalidBirthDate' ] segment: military subSegment: activeDuty locale: en-US activeMilitaryWithProgramCollectInfoInvalid: value: verificationId: '111111111111111111111111' currentStep: collectActiveMilitaryPersonalInfo submissionUrl: /rest/v2/verification/111111111111111111111111/collectActiveMilitaryPersonalInfo errorIds: [ 'invalidBirthDate' ] segment: military subSegment: null locale: en-US activeMilitaryDocumentRejected: value: verificationId: '111111111111111111111111' currentStep: docUpload errorIds: [ ] segment: military subSegment: activeDuty locale: en-US submissionUrl: /rest/v2/verification/111111111111111111111111/step/docUpload rejectionReasons: [ 'MISMATCH_PERSON_LAST_NAME', 'DOCUMENT_EXPIRED' ] activeMilitaryWithProgramDocumentRejected: value: verificationId: '111111111111111111111111' currentStep: docUpload errorIds: [ ] segment: military subSegment: null locale: en-US submissionUrl: /rest/v2/verification/111111111111111111111111/step/docUpload rejectionReasons: [ 'MISMATCH_PERSON_LAST_NAME', 'DOCUMENT_EXPIRED' ] activeMilitaryDocumentUpload: value: verificationId: '111111111111111111111111' currentStep: docUpload errorIds: [ ] segment: military subSegment: activeDuty locale: en-US submissionUrl: /rest/v2/verification/111111111111111111111111/step/docUpload rejectionReasons: [ ] activeMilitaryWithProgramDocumentUpload: value: verificationId: '111111111111111111111111' currentStep: docUpload errorIds: [ ] segment: military subSegment: null locale: en-US submissionUrl: /rest/v2/verification/111111111111111111111111/step/docUpload rejectionReasons: [ ] activeMilitarySuccess: value: verificationId: '111111111111111111111111' currentStep: success errorIds: [ ] segment: military subSegment: activeDuty locale: en-US country: US rewardCode: EXAMPLE-CODE redirectUrl: null rewardData: rewardCode: EXAMPLE-CODE activeMilitaryWithProgramSuccess: value: verificationId: '111111111111111111111111' currentStep: success errorIds: [ ] segment: military subSegment: activeDuty locale: en-US country: US rewardCode: EXAMPLE-CODE redirectUrl: null rewardData: rewardCode: EXAMPLE-CODE activeMilitaryVerificationLimitError: value: verificationId: '111111111111111111111111' currentStep: error errorIds: [ 'verificationLimitExceeded' ] systemErrorMessage: User has exceeded the maximum number of verifications segment: military subSegment: activeDuty locale: en-US activeMilitaryWithProgramVerificationLimitError: value: verificationId: '111111111111111111111111' currentStep: error errorIds: [ 'verificationLimitExceeded' ] systemErrorMessage: User has exceeded the maximum number of verifications segment: military subSegment: null locale: en-US ageCollectInfoInvalid: value: verificationId: '111111111111111111111111' currentStep: collectAgePersonalInfo submissionUrl: /rest/v2/verification/111111111111111111111111/collectAgePersonalInfo errorIds: [ 'invalidEmail' ] segment: age subSegment: null locale: en-US ageDocumentRejected: value: verificationId: '111111111111111111111111' currentStep: docUpload errorIds: [ ] segment: age subSegment: null locale: en-US submissionUrl: /rest/v2/verification/111111111111111111111111/step/docUpload rejectionReasons: [ 'MISMATCH_PERSON_LAST_NAME', 'DOCUMENT_EXPIRED' ] ageDocumentUpload: value: verificationId: '111111111111111111111111' currentStep: docUpload errorIds: [ ] segment: age subSegment: null locale: en-US submissionUrl: /rest/v2/verification/111111111111111111111111/step/docUpload rejectionReasons: [ ] ageSuccess: value: verificationId: '111111111111111111111111' currentStep: success errorIds: [ ] segment: age subSegment: null locale: en-US country: US rewardCode: EXAMPLE-CODE redirectUrl: null rewardData: rewardCode: EXAMPLE-CODE ageVerificationLimitError: value: verificationId: '111111111111111111111111' currentStep: error errorIds: [ 'verificationLimitExceeded' ] systemErrorMessage: User has exceeded the maximum number of verifications segment: age subSegment: null locale: en-US completeAuthentication: value: verificationId: '111111111111111111111111' currentStep: completeAuthentication submissionUrl: /rest/v2/verification/111111111111111111111111/completeAuthentication errorIds: [ ] segment: military subSegment: null locale: en-US collectPersonalInfo: value: verificationId: '111111111111111111111111' currentStep: collectPersonalInfo submissionUrl: /rest/v2/verification/111111111111111111111111/collectPersonalInfo errorIds: [ ] segment: student subSegment: null locale: en-US consolation: value: verificationId: '111111111111111111111111' currentStep: consolation segment: student subSegment: null locale: en-US consolationRewardCode: 'EXAMPLE_CONSOLATION_REWARD' override: value: verificationId: '111111111111111111111111' currentStep: override segment: student subSegment: null locale: en-US submissionUrl: /rest/v2/verification/111111111111111111111111/step/resultOverride docReviewLimitExceededError: value: verificationId: '111111111111111111111111' currentStep: error errorIds: [ 'docReviewLimitExceeded' ] systemErrorMessage: User has exceeded the maximum number of document reviews segment: student subSegment: null locale: en-US docUpload: value: verificationId: '111111111111111111111111' currentStep: docUpload rejectionReasons: [ 'DOCUMENT_EXPIRED' ] submissionUrl: /rest/v2/verification/111111111111111111111111/docUpload errorIds: [ ] segment: student subSegment: null locale: en-US driverLicenseSuccess: value: verificationId: '111111111111111111111111' currentStep: success errorIds: [ ] segment: identity subSegment: driverLicense locale: en-US country: US rewardCode: EXAMPLE-CODE redirectUrl: null rewardData: rewardCode: EXAMPLE-CODE driverLicenseCollectInfoInvalid: value: verificationId: '111111111111111111111111' currentStep: collectDriverLicensePersonalInfo submissionUrl: /rest/v2/verification/111111111111111111111111/collectDriverLicensePersonalInfo errorIds: [ 'invalidEmail' ] segment: identity subSegment: driverLicense locale: en-US driverLicenseDocumentRejected: value: verificationId: '111111111111111111111111' currentStep: docUpload errorIds: [ ] segment: identity subSegment: driverLicense locale: en-US submissionUrl: /rest/v2/verification/111111111111111111111111/step/docUpload rejectionReasons: [ 'MISMATCH_PERSON_LAST_NAME', 'DOCUMENT_EXPIRED' ] driverLicenseDocumentUpload: value: verificationId: '111111111111111111111111' currentStep: docUpload errorIds: [ ] segment: identity subSegment: driverLicense locale: en-US submissionUrl: /rest/v2/verification/111111111111111111111111/step/docUpload rejectionReasons: [ ] driverLicenseVerificationLimitError: value: verificationId: '111111111111111111111111' currentStep: error errorIds: [ 'verificationLimitExceeded' ] systemErrorMessage: User has exceeded the maximum number of verifications segment: identity subSegment: driverLicense locale: en-US generalIdentitySuccess: value: verificationId: '111111111111111111111111' currentStep: success errorIds: [ ] segment: identity subSegment: generalIdentity locale: en-US country: null rewardCode: EXAMPLE-CODE redirectUrl: null rewardData: rewardCode: EXAMPLE-CODE generalIdentityCollectInfoInvalid: value: verificationId: '111111111111111111111111' currentStep: collectDriverLicensePersonalInfo submissionUrl: /rest/v2/verification/111111111111111111111111/collectGeneralIdentityPersonalInfo errorIds: [ 'invalidEmail' ] segment: identity subSegment: generalIdentity locale: en-US generalIdentityDocumentRejected: value: verificationId: '111111111111111111111111' currentStep: docUpload errorIds: [ ] segment: identity subSegment: generalIdentity locale: en-US submissionUrl: /rest/v2/verification/111111111111111111111111/step/docUpload rejectionReasons: [ 'MISMATCH_PERSON_LAST_NAME', 'DOCUMENT_EXPIRED' ] generalIdentityDocumentUpload: value: verificationId: '111111111111111111111111' currentStep: docUpload errorIds: [ ] segment: identity subSegment: generalIdentity locale: en-US submissionUrl: /rest/v2/verification/111111111111111111111111/step/docUpload rejectionReasons: [ ] generalIdentityVerificationLimitError: value: verificationId: '111111111111111111111111' currentStep: error errorIds: [ 'verificationLimitExceeded' ] systemErrorMessage: User has exceeded the maximum number of verifications segment: identity subSegment: generalIdentity locale: en-US employeeCollectInfoInvalid: value: verificationId: '111111111111111111111111' currentStep: collectEmployeePersonalInfo submissionUrl: /rest/v2/verification/111111111111111111111111/collectEmployeePersonalInfo errorIds: [ 'invalidEmail' ] segment: employment subSegment: employee locale: en-US employeeDocumentRejected: value: verificationId: '111111111111111111111111' currentStep: docUpload errorIds: [ ] segment: employment subSegment: employee locale: en-US submissionUrl: /rest/v2/verification/111111111111111111111111/step/docUpload rejectionReasons: [ 'MISMATCH_PERSON_LAST_NAME', 'DOCUMENT_EXPIRED' ] employeeDocumentUpload: value: verificationId: '111111111111111111111111' currentStep: docUpload errorIds: [ ] segment: employment subSegment: employee locale: en-US submissionUrl: /rest/v2/verification/111111111111111111111111/step/docUpload rejectionReasons: [ ] employeeSuccess: value: verificationId: '111111111111111111111111' currentStep: success errorIds: [ ] segment: employment subSegment: employee locale: en-US country: US rewardCode: EXAMPLE-CODE redirectUrl: null rewardData: rewardCode: EXAMPLE-CODE employeeVerificationLimitError: value: verificationId: '111111111111111111111111' currentStep: error errorIds: [ 'verificationLimitExceeded' ] systemErrorMessage: User has exceeded the maximum number of verifications segment: employment subSegment: employee locale: en-US errorExpiredVerification: value: verificationId: '111111111111111111111111' currentStep: error errorIds: [ 'expiredVerification' ] systemErrorMessage: Verification with ID '111111111111111111111111' is expired segment: null subSegment: null locale: en-US errorNoRemainingRewardCodes: value: verificationId: null currentStep: error errorIds: [ 'noRemainingRewardCodes' ] systemErrorMessage: No reward codes remaining for program with ID '222222222222222222222222' segment: null subSegment: null locale: en-US errorVerificationNotFound: value: verificationId: null currentStep: error errorIds: [ 'noVerification' ] systemErrorMessage: Verification with ID '111111111111111111111111' not found segment: null subSegment: null locale: en-US firstResponderCollectInfoInvalid: value: verificationId: '111111111111111111111111' currentStep: collectFirstResponderPersonalInfo submissionUrl: /rest/v2/verification/111111111111111111111111/collectFirstResponderPersonalInfo errorIds: [ 'invalidEmail' ] availableStatuses: [ 'POLICE', 'EMT', 'FIREFIGHTER', 'SEARCH_AND_RESCUE' ] segment: firstResponder subSegment: police locale: en-US firstResponderDocumentRejected: value: verificationId: '111111111111111111111111' currentStep: docUpload errorIds: [ ] segment: firstResponder subSegment: police locale: en-US submissionUrl: /rest/v2/verification/111111111111111111111111/step/docUpload rejectionReasons: [ 'MISMATCH_PERSON_LAST_NAME', 'DOCUMENT_EXPIRED' ] firstResponderDocumentUpload: value: verificationId: '111111111111111111111111' currentStep: docUpload errorIds: [ ] segment: firstResponder subSegment: police locale: en-US submissionUrl: /rest/v2/verification/111111111111111111111111/step/docUpload rejectionReasons: [ ] firstResponderSuccess: value: verificationId: '111111111111111111111111' currentStep: success errorIds: [ ] segment: firstResponder subSegment: police locale: en-US country: US rewardCode: EXAMPLE-CODE redirectUrl: null rewardData: rewardCode: EXAMPLE-CODE firstResponderVerificationLimitError: value: verificationId: '111111111111111111111111' currentStep: error errorIds: [ 'verificationLimitExceeded' ] systemErrorMessage: User has exceeded the maximum number of verifications segment: firstResponder subSegment: police locale: en-US inactiveMilitaryCollectInfoInvalid: value: verificationId: '111111111111111111111111' currentStep: collectInactiveMilitaryPersonalInfo submissionUrl: /rest/v2/verification/111111111111111111111111/collectInactiveMilitaryPersonalInfo errorIds: [ 'invalidBirthDate' ] segment: military subSegment: veteran locale: en-US inactiveMilitaryWithProgramCollectInfoInvalid: value: verificationId: '111111111111111111111111' currentStep: collectInactiveMilitaryPersonalInfo submissionUrl: /rest/v2/verification/111111111111111111111111/collectInactiveMilitaryPersonalInfo errorIds: [ 'invalidBirthDate' ] segment: military subSegment: null locale: en-US inactiveMilitaryDocumentRejected: value: verificationId: '111111111111111111111111' currentStep: docUpload errorIds: [ ] segment: military subSegment: veteran locale: en-US submissionUrl: /rest/v2/verification/111111111111111111111111/step/docUpload rejectionReasons: [ 'MISMATCH_PERSON_LAST_NAME', 'DOCUMENT_EXPIRED' ] inactiveMilitaryWithProgramDocumentRejected: value: verificationId: '111111111111111111111111' currentStep: docUpload errorIds: [ ] segment: military subSegment: null locale: en-US submissionUrl: /rest/v2/verification/111111111111111111111111/step/docUpload rejectionReasons: [ 'MISMATCH_PERSON_LAST_NAME', 'DOCUMENT_EXPIRED' ] inactiveMilitaryDocumentUpload: value: verificationId: '111111111111111111111111' currentStep: docUpload errorIds: [ ] segment: military subSegment: veteran locale: en-US submissionUrl: /rest/v2/verification/111111111111111111111111/step/docUpload rejectionReasons: [ ] inactiveMilitaryWithProgramDocumentUpload: value: verificationId: '111111111111111111111111' currentStep: docUpload errorIds: [ ] segment: military subSegment: null locale: en-US submissionUrl: /rest/v2/verification/111111111111111111111111/step/docUpload rejectionReasons: [ ] inactiveMilitarySuccess: value: verificationId: '111111111111111111111111' currentStep: success errorIds: [ ] segment: military subSegment: veteran locale: en-US country: US rewardCode: EXAMPLE-CODE redirectUrl: null rewardData: rewardCode: EXAMPLE-CODE inactiveMilitaryWithProgramSuccess: value: verificationId: '111111111111111111111111' currentStep: success errorIds: [ ] segment: military subSegment: veteran locale: en-US country: US rewardCode: EXAMPLE-CODE redirectUrl: null rewardData: rewardCode: EXAMPLE-CODE inactiveMilitaryVerificationLimitError: value: verificationId: '111111111111111111111111' currentStep: error errorIds: [ 'verificationLimitExceeded' ] systemErrorMessage: User has exceeded the maximum number of verifications segment: military subSegment: veteran locale: en-US inactiveMilitaryWithProgramVerificationLimitError: value: verificationId: '111111111111111111111111' currentStep: error errorIds: [ 'verificationLimitExceeded' ] systemErrorMessage: User has exceeded the maximum number of verifications segment: military subSegment: null locale: en-US invalidEmailLoopAddressOverrideError: value: cancelUrl: 'https://services.sheerid.com/rest/v2/verification/111111111111111111111111/step/emailLoop' verificationId: '111111111111111111111111' currentStep: 'emailLoop' errorIds: [ 'invalidEmail' ] segment: 'student' subSegment: null locale: 'en-US' country: 'US' submissionUrl: 'https://services.sheerid.com/rest/v2/verification/111111111111111111111111/step/emailLoop/resume' canResendEmailLoop: false invalidEmailLoop: value: verificationId: '111111111111111111111111' currentStep: error errorIds: [ 'invalidEmailLoopToken' ] systemErrorMessage: Provided token was not correct segment: student subSegment: null locale: en-US invalidAuthenticationLoopToken: value: verificationId: '111111111111111111111111' currentStep: error errorIds: [ 'invalidAuthenticationLoopToken' ] systemErrorMessage: Provided token was not correct segment: student subSegment: null locale: en-US invalidOverrideCodeError: value: verificationId: '111111111111111111111111' currentStep: override submissionUrl: /rest/v2/verification/111111111111111111111111/step/resultOverride errorIds: [ 'invalidOverrideCode' ] systemErrorMessage: Provided override code was incorrect segment: student subSegment: null locale: en-US incorrectVerificationOverrideCodeAttemptLimitExceededError: value: verificationId: '111111111111111111111111' currentStep: error errorIds: [ 'incorrectVerificationOverrideCodeAttemptLimitExceeded' ] systemErrorMessage: Incorrect verification override code attempt limit exceeded segment: student subSegment: null locale: en-US invalidProgramError: value: verificationId: null currentStep: error errorIds: [ 'invalidProgram' ] systemErrorMessage: Program with id '222222222222222222222222' is not setup to perform this step segment: null subSegment: null locale: en-US invalidSMSError: value: verificationId: '111111111111111111111111' currentStep: smsLoop errorIds: [ 'invalidSMSCode' ] submissionUrl: /rest/v2/verification/smsLoop segment: student subSegment: null locale: en-US invalidSsoError: value: verificationId: '111111111111111111111111' currentStep: error errorIds: [ 'invalidStep' ] systemErrorMessage: Verification with id '111111111111111111111111' does not have an ongoing SSO request segment: student subSegment: null locale: en-US invalidStepError: value: verificationId: '111111111111111111111111' currentStep: override errorIds: [ 'invalidStep' ] systemErrorMessage: Verification with id '111111111111111111111111' is not at the docUpload step segment: student subSegment: null locale: en-US invalidTokenError: value: verificationId: '111111111111111111111111' currentStep: error errorIds: [ 'invalidApiToken' ] systemErrorMessage: Provided API token is empty or invalid segment: null subSegment: null locale: en-US licensedProfessionalCollectInfoInvalid: value: verificationId: '111111111111111111111111' currentStep: collectLicensedProfessionalPersonalInfo submissionUrl: /rest/v2/verification/111111111111111111111111/collectLicensedProfessionalPersonalInfo errorIds: [ 'invalidEmail' ] availableStatuses: [ 'LICENSED_COSMETOLOGIST', 'LICENSED_REAL_ESTATE_AGENT', 'VETERINARIAN', 'CHILD_CARE_WORKER', 'LIBRARIAN' ] segment: licensedProfessional subSegment: licensedCosmetologist locale: en-US licensedProfessionalDocumentRejected: value: verificationId: '111111111111111111111111' currentStep: docUpload errorIds: [ ] segment: licensedProfessional subSegment: licensedRealEstateAgent locale: en-US submissionUrl: /rest/v2/verification/111111111111111111111111/step/docUpload rejectionReasons: [ 'MISMATCH_PERSON_LAST_NAME', 'DOCUMENT_EXPIRED' ] licensedProfessionalDocumentUpload: value: verificationId: '111111111111111111111111' currentStep: docUpload errorIds: [ ] segment: licensedProfessional subSegment: licensedRealEstateAgent locale: en-US submissionUrl: /rest/v2/verification/111111111111111111111111/step/docUpload rejectionReasons: [ ] licensedProfessionalSuccess: value: verificationId: '111111111111111111111111' currentStep: success errorIds: [ ] segment: licensedProfessional subSegment: licensedCosmetologist locale: en-US country: US rewardCode: EXAMPLE-CODE redirectUrl: null rewardData: rewardCode: EXAMPLE-CODE licensedProfessionalVerificationLimitError: value: verificationId: '111111111111111111111111' currentStep: error errorIds: [ 'verificationLimitExceeded' ] systemErrorMessage: User has exceeded the maximum number of verifications segment: licensedProfessional subSegment: licensedRealEstateAgent locale: en-US marketplaceCollectToken: value: verificationId: '111111111111111111111111' currentStep: collectMarketplaceToken submissionUrl: /rest/v2/verification/111111111111111111111111/collectMarketplaceToken errorIds: [ ] segment: marketplace subSegment: null locale: en-US verificationToken: 'AbcdEfg1234!@#$AbcdEfg1234!@#$12' marketplaceSuccess: value: verificationId: '111111111111111111111111' currentStep: success errorIds: [ ] segment: marketplace subSegment: null locale: en-US country: null rewardCode: EXAMPLE-CODE redirectUrl: null rewardData: rewardCode: EXAMPLE-CODE marketplaceVerificationLimitError: value: verificationId: '111111111111111111111111' currentStep: error errorIds: [ 'verificationLimitExceeded' ] systemErrorMessage: User has exceeded the maximum number of verifications segment: marketplace subSegment: null locale: en-US maxFilesExceededError: value: verificationId: '111111111111111111111111' currentStep: error errorIds: [ 'invalidNumberOfFiles' ] systemErrorMessage: Maximum number of files has been exceeded segment: student subSegment: null locale: en-US maxFileSizeExceededError: value: verificationId: '111111111111111111111111' currentStep: error errorIds: [ 'invalidFileSizeMax' ] systemErrorMessage: Maximum file size has been exceeded segment: student subSegment: null locale: en-US maxSMSLimitReached: value: verificationId: '111111111111111111111111' currentStep: smsLoop errorIds: [ 'maxSMSLimitReached' ] systemErrorMessage: Verification with id '111111111111111111111111' can not send any more SMS codes segment: student subSegment: null locale: en-US medicalProfessionalCollectInfoInvalid: value: verificationId: '111111111111111111111111' currentStep: collectMedicalProfessionalPersonalInfo submissionUrl: /rest/v2/verification/111111111111111111111111/collectMedicalProfessionalPersonalInfo errorIds: [ 'invalidEmail' ] availableStatuses: [ 'NURSE', 'DOCTOR', 'OTHER_HEALTH_WORKER', 'DENTIST', 'PHARMACIST' ] segment: medical subSegment: nurse locale: en-US medicalProfessionalDocumentRejected: value: verificationId: '111111111111111111111111' currentStep: docUpload errorIds: [ ] segment: medical subSegment: nurse locale: en-US submissionUrl: /rest/v2/verification/111111111111111111111111/step/docUpload rejectionReasons: [ 'MISMATCH_PERSON_LAST_NAME', 'DOCUMENT_EXPIRED' ] medicalProfessionalDocumentUpload: value: verificationId: '111111111111111111111111' currentStep: docUpload errorIds: [ ] segment: medical subSegment: nurse locale: en-US submissionUrl: /rest/v2/verification/111111111111111111111111/step/docUpload rejectionReasons: [ ] medicalProfessionalSuccess: value: verificationId: '111111111111111111111111' currentStep: success errorIds: [ ] segment: medical subSegment: nurse locale: en-US country: US rewardCode: EXAMPLE_CODE redirectUrl: null rewardData: rewardCode: EXAMPLE_CODE medicalProfessionalVerificationLimitError: value: verificationId: '111111111111111111111111' currentStep: error errorIds: [ 'verificationLimitExceeded' ] systemErrorMessage: User has exceeded the maximum number of verifications segment: medical subSegment: nurse locale: en-US memberCollectInfoInvalid: value: verificationId: '111111111111111111111111' currentStep: collectMemberPersonalInfo submissionUrl: /rest/v2/verification/111111111111111111111111/collectMemberPersonalInfo errorIds: [ 'invalidEmail' ] segment: member subSegment: null locale: en-US memberSuccess: value: verificationId: '111111111111111111111111' currentStep: success errorIds: [ ] segment: member subSegment: null locale: en-US country: US rewardCode: EXAMPLE-CODE redirectUrl: null rewardData: rewardCode: EXAMPLE-CODE memberVerificationLimitError: value: verificationId: '111111111111111111111111' currentStep: error errorIds: [ 'verificationLimitExceeded' ] systemErrorMessage: User has exceeded the maximum number of verifications segment: member subSegment: null locale: en-US militaryCollectStatusInvalid: value: verificationId: '111111111111111111111111' currentStep: collectActiveMilitaryPersonalInfo submissionUrl: /rest/v2/verification/111111111111111111111111/collectMilitaryStatus availableStatuses: [ 'ACTIVE_DUTY', 'VETERAN', 'MILITARY_RETIREE', 'GOLD_STAR_FAMILY' ] errorIds: [ 'invalidMilitaryStatus' ] segment: military subSegment: null locale: en-US militaryContinueToSocialSecurityNumber: value: verificationId: '111111111111111111111111' currentStep: collectSocialSecurityNumber errorIds: [ ] submissionUrl: /rest/v2/verification/111111111111111111111111/collectSocialSecurityNumber/123456789 cancelUrl: /rest/v2/verification/111111111111111111111111/collectSocialSecurityNumber/123456789 segment: military subSegment: veteran locale: en-US militaryWithProgramContinueToSocialSecurityNumber: value: verificationId: '111111111111111111111111' currentStep: collectSocialSecurityNumber errorIds: [ ] submissionUrl: /rest/v2/verification/111111111111111111111111/collectSocialSecurityNumber/123456789 cancelUrl: /rest/v2/verification/111111111111111111111111/collectSocialSecurityNumber/123456789 segment: military subSegment: null locale: en-US moverCollectInfoInvalid: value: verificationId: '111111111111111111111111' currentStep: collectMoverPersonalInfo submissionUrl: /rest/v2/verification/111111111111111111111111/collectMoverlPersonalInfo errorIds: [ 'invalidEmail' ] availableStatuses: [ 'HOME_BUYER', 'OTHER_MOVER' ] segment: recentMover subSegment: homeBuyer locale: en-US moverDocumentRejected: value: verificationId: '111111111111111111111111' currentStep: docUpload errorIds: [ ] segment: recentMover subSegment: homeBuyer locale: en-US submissionUrl: /rest/v2/verification/111111111111111111111111/step/docUpload rejectionReasons: [ 'MISMATCH_PERSON_LAST_NAME', 'DOCUMENT_EXPIRED' ] moverDocumentUpload: value: verificationId: '111111111111111111111111' currentStep: docUpload errorIds: [ ] segment: recentMover subSegment: homeBuyer locale: en-US submissionUrl: /rest/v2/verification/111111111111111111111111/step/docUpload rejectionReasons: [ ] moverSuccess: value: verificationId: '111111111111111111111111' currentStep: success errorIds: [ ] segment: recentMover subSegment: otherMover locale: en-US country: null rewardCode: EXAMPLE-CODE redirectUrl: null rewardData: rewardCode: EXAMPLE-CODE moverVerificationLimitError: value: verificationId: '111111111111111111111111' currentStep: error errorIds: [ 'verificationLimitExceeded' ] systemErrorMessage: User has exceeded the maximum number of verifications segment: recentMover subSegment: homeBuyer locale: en-US organizationDetailsSuccess: value: id: 590759 name: 'Yale University' type: 'UNIVERSITY' street: '165 Whitney Ave' city: 'New Haven' state: 'CT' zip: '06511' country: 'US' pending: value: verificationId: '111111111111111111111111' currentStep: pending statusUrl: /rest/v2/verification/111111111111111111111111 errorIds: [ ] segment: student subSegment: null locale: en-US lastResponse: verificationId: '111111111111111111111111' currentStep: docUpload errorIds: [ ] segment: student subSegment: null locale: en-US submissionUrl: /rest/v2/verification/111111111111111111111111/step/docUpload rejectionReasons: [ ] awaitingStep: docUpload programNotFoundError: value: verificationId: null currentStep: error errorIds: [ 'noProgram' ] systemErrorMessage: Program with ID '222222222222222222222222' not found segment: null subSegment: null locale: en-US programExpiredError: value: verificationId: null currentStep: error errorIds: [ 'expiredProgram' ] systemErrorMessage: Program with id '222222222222222222222222' has expired segment: null subSegment: null locale: en-US programInactiveError: value: verificationId: null currentStep: error errorIds: [ 'inactiveProgram' ] systemErrorMessage: Program with id '222222222222222222222222' is not currently active segment: null subSegment: null locale: en-US rememberMeEnabledSuccess: value: verificationId: '111111111111111111111111' currentStep: success errorIds: [ ] segment: military subSegment: activeDuty locale: en-US country: US rewardCode: EXAMPLE-CODE redirectUrl: null rewardData: rewardCode: EXAMPLE-CODE consumerInfoState: consumerNotFound reportStatusResponseComplete: value: id: '111111111111111111111111' status: 'COMPLETE' statusUrl: 'https://services.sheerid.com/rest/v2/report/verification/111111111111111111111111/status' retrievalUrl: 'https://services.sheerid.com/rest/v2/report/verification/111111111111111111111111' requester: "222222222222222222222222" created: 1234567891234 reportStatusResponsePending: value: id: '111111111111111111111111' status: 'PENDING' statusUrl: 'https://services.sheerid.com/rest/v2/report/verification/111111111111111111111111/status' retrievalUrl: null requester: "222222222222222222222222" created: 1234567891234 resumeEmailLoopResponse: value: cancelUrl: 'https://services.sheerid.com/rest/v2/verification/111111111111111111111111/step/emailLoop' verificationId: '111111111111111111111111' currentStep: 'emailLoop' currentState: 'pending' errorIds: [ ] segment: 'student' subSegment: null locale: 'en-US' country: 'US' submissionUrl: 'https://services.sheerid.com/rest/v2/verification/111111111111111111111111/step/emailLoop' canResendEmailLoop: true resumeEmailLoopResponseWithToken: value: cancelUrl: 'https://services.sheerid.com/rest/v2/verification/111111111111111111111111/step/emailLoop' verificationId: '111111111111111111111111' currentStep: 'emailLoop' currentState: 'pending' errorIds: [ ] segment: 'student' subSegment: null locale: 'en-US' country: 'US' submissionUrl: 'https://services.sheerid.com/rest/v2/verification/111111111111111111111111/step/emailLoop' canResendEmailLoop: false token: '222222' socialSecurityNumberCancelled: value: verificationId: '111111111111111111111111' currentStep: docUpload submissionUrl: /rest/v2/verification/111111111111111111111111/docUpload errorIds: [ ] segment: military subSegment: veteran locale: en-US socialSecurityNumberInvalid: value: verificationId: '111111111111111111111111' currentStep: collectSocialSecurityNumber submissionUrl: /rest/v2/verification/111111111111111111111111/collectSocialSecurityNumber/123456789 cancelUrl: /rest/v2/verification/111111111111111111111111/collectSocialSecurityNumber/123456789 errorIds: [ 'invalidSocialSecurityNumber' ] segment: military subSegment: veteran locale: en-US socialSecurityNumberSuccess: value: verificationId: '111111111111111111111111' currentStep: success errorIds: [ ] segment: military subSegment: veteran locale: en-US country: US rewardCode: EXAMPLE-CODE redirectUrl: null rewardData: rewardCode: EXAMPLE-CODE seniorCollectInfoInvalid: value: verificationId: '111111111111111111111111' currentStep: collectSeniorPersonalInfo submissionUrl: /rest/v2/verification/111111111111111111111111/collectSeniorPersonalInfo errorIds: [ 'invalidEmail' ] segment: senior subSegment: null locale: en-US seniorSuccess: value: verificationId: '111111111111111111111111' currentStep: success errorIds: [ ] segment: age subSegment: null locale: en-US country: US rewardCode: EXAMPLE-CODE redirectUrl: null rewardData: rewardCode: EXAMPLE-CODE seniorVerificationLimitError: value: verificationId: '111111111111111111111111' currentStep: error errorIds: [ 'verificationLimitExceeded' ] systemErrorMessage: User has exceeded the maximum number of verifications segment: senior subSegment: null locale: en-US studentCollectInfo: value: verificationId: '111111111111111111111111' currentStep: collectStudentPersonalInfo submissionUrl: /rest/v2/verification/111111111111111111111111/collectStudentPersonalInfo errorIds: [ ] segment: student subSegment: null locale: en-US collectPersonalInfoInvalid: value: verificationId: '111111111111111111111111' currentStep: collectPersonalInfo submissionUrl: /rest/v2/verification/111111111111111111111111/collectPersonalInfo errorIds: [ 'invalidBirthDate' ] segment: student subSegment: null locale: en-US studentCollectInfoInvalid: value: verificationId: '111111111111111111111111' currentStep: collectStudentPersonalInfo submissionUrl: /rest/v2/verification/111111111111111111111111/collectStudentPersonalInfo errorIds: [ 'invalidBirthDate' ] segment: student subSegment: null locale: en-US studentDocumentRejected: value: verificationId: '111111111111111111111111' currentStep: docUpload errorIds: [ ] segment: student subSegment: null locale: en-US submissionUrl: /rest/v2/verification/111111111111111111111111/step/docUpload rejectionReasons: [ 'MISMATCH_PERSON_LAST_NAME', 'DOCUMENT_EXPIRED' ] studentDocumentUpload: value: verificationId: '111111111111111111111111' currentStep: docUpload errorIds: [ ] segment: student subSegment: null locale: en-US submissionUrl: /rest/v2/verification/111111111111111111111111/step/docUpload rejectionReasons: [ ] studentSuccess: value: verificationId: '111111111111111111111111' currentStep: success errorIds: [ ] segment: student subSegment: null locale: en-US country: US rewardCode: EXAMPLE-CODE redirectUrl: null rewardData: rewardCode: EXAMPLE-CODE studentVerificationLimitError: value: verificationId: '111111111111111111111111' currentStep: error errorIds: [ 'verificationLimitExceeded' ] systemErrorMessage: User has exceeded the maximum number of verifications segment: student subSegment: null locale: en-US teacherCollectInfoInvalid: value: verificationId: '111111111111111111111111' currentStep: collectTeacherPersonalInfo submissionUrl: /rest/v2/verification/111111111111111111111111/collectTeacherPersonalInfo errorIds: [ 'invalidPostalCode' ] segment: teacher subSegment: null locale: en-US teacherDocumentRejected: value: verificationId: '111111111111111111111111' currentStep: docUpload errorIds: [ ] segment: teacher subSegment: null locale: en-US submissionUrl: /rest/v2/verification/111111111111111111111111/step/docUpload rejectionReasons: [ 'MISMATCH_PERSON_LAST_NAME', 'DOCUMENT_EXPIRED' ] teacherDocumentUpload: value: verificationId: '111111111111111111111111' currentStep: docUpload errorIds: [ ] segment: teacher subSegment: null locale: en-US submissionUrl: /rest/v2/verification/111111111111111111111111/step/docUpload rejectionReasons: [ ] teacherSuccess: value: verificationId: '111111111111111111111111' currentStep: success errorIds: [ ] segment: teacher subSegment: null locale: en-US country: US rewardCode: EXAMPLE_CODE rewardData: rewardCode: EXAMPLE_CODE teacherVerificationLimitError: value: verificationId: '111111111111111111111111' currentStep: error errorIds: [ 'verificationLimitExceeded' ] systemErrorMessage: User has exceeded the maximum number of verifications segment: teacher subSegment: null locale: en-US lowIncomeCollectInfoInvalid: value: verificationId: '111111111111111111111111' currentStep: collectLowIncomePersonalInfo submissionUrl: /rest/v2/verification/111111111111111111111111/collectLowIncomePersonalInfo errorIds: [ 'invalidPostalCode' ] segment: lowIncome subSegment: null locale: en-US lowIncomeDocumentRejected: value: verificationId: '111111111111111111111111' currentStep: docUpload errorIds: [ ] segment: lowIncome subSegment: null locale: en-US submissionUrl: /rest/v2/verification/111111111111111111111111/step/docUpload rejectionReasons: [ 'MISMATCH_PERSON_LAST_NAME', 'DOCUMENT_EXPIRED' ] lowIncomeDocumentUpload: value: verificationId: '111111111111111111111111' currentStep: docUpload errorIds: [ ] segment: lowIncome subSegment: null locale: en-US submissionUrl: /rest/v2/verification/111111111111111111111111/step/docUpload rejectionReasons: [ ] lowIncomeSuccess: value: verificationId: '111111111111111111111111' currentStep: success errorIds: [ ] segment: lowIncome subSegment: snapBenefits locale: en-US country: null rewardCode: EXAMPLE-CODE redirectUrl: null rewardData: rewardCode: EXAMPLE-CODE lowIncomeVerificationLimitError: value: verificationId: '111111111111111111111111' currentStep: error errorIds: [ 'verificationLimitExceeded' ] systemErrorMessage: User has exceeded the maximum number of verifications segment: lowIncome subSegment: null locale: en-US verificationDetailsDocumentUpload: value: programId: '222222222222222222222222' trackingId: '333333333333333333333333' personId: '444444444444444444444444' created: 1553622624552 updated: 1553622624552 lastResponse: verificationId: '111111111111111111111111' currentStep: docUpload errorIds: [ ] segment: student subSegment: null locale: en-US submissionUrl: /rest/v2/verification/111111111111111111111111/step/docUpload rejectionReasons: [ ] personInfo: firstName: Joe lastName: Verify email: joe.verify@sheerid.com birthDate: '1991-01-01' metadata: my: stuff organization: id: 1234 name: Some Organization docUploadRejectionCount: 0 docUploadRejectionReasons: [ ] verificationMethod: MANUAL confirmedSegments: - segment: 'some segment' subSegment: 'some subsegment' organization: id: 1111 name: 'Some Organization' idExtended: 'a1a1a1a1' source: 'Some Source' active: false startDate: 1111111111111 endDate: 2222222222222 verificationDetailsDocumentRejected: value: programId: '222222222222222222222222' trackingId: '333333333333333333333333' personId: '444444444444444444444444' created: 1553622624552 updated: 1553622624552 lastResponse: verificationId: '111111111111111111111111' currentStep: docUpload errorIds: [ ] segment: student subSegment: null locale: en-US submissionUrl: /rest/v2/verification/111111111111111111111111/step/docUpload rejectionReasons: [ 'MISMATCH_PERSON_LAST_NAME', 'DOCUMENT_EXPIRED' ] personInfo: firstName: Joe lastName: Verify email: joe.verify@sheerid.com birthDate: '1991-01-01' metadata: my: stuff organization: id: 1234 name: Some Organization docUploadRejectionCount: 1 docUploadRejectionReasons: [ 'MISMATCH_PERSON_LAST_NAME', 'DOCUMENT_EXPIRED' ] verificationMethod: MANUAL confirmedSegments: [ ] verificationDetailsSuccess: value: programId: '222222222222222222222222' trackingId: '333333333333333333333333' personId: '444444444444444444444444' created: 1553622624552 updated: 1553622624552 lastResponse: verificationId: '111111111111111111111111' currentStep: success rewardCode: MY_CODE errorIds: [ ] segment: student subSegment: null locale: en-US personInfo: firstName: Joe lastName: Verify email: joe.verify@sheerid.com birthDate: '1991-01-01' metadata: my: stuff organization: id: 1234 name: Some Organization docUploadRejectionCount: 0 docUploadRejectionReasons: [ ] verificationMethod: INSTANT confirmedSegments: - segment: 'some segment' subSegment: 'some subsegment' organization: id: 1111 name: 'Some Organization' idExtended: 'a1a1a1a1' source: 'Some Source' active: true startDate: 1111111111111 endDate: 2222222222222 verificationDetailsPending: value: programId: '222222222222222222222222' trackingId: '333333333333333333333333' personId: '444444444444444444444444' created: 1553622624552 updated: 1553622624552 lastResponse: verificationId: '111111111111111111111111' currentStep: pending statusUrl: /rest/v2/verification/111111111111111111111111 errorIds: [ ] segment: student subSegment: null locale: en-US lastResponse: verificationId: '111111111111111111111111' currentStep: docUpload errorIds: [ ] segment: student subSegment: null locale: en-US submissionUrl: /rest/v2/verification/111111111111111111111111/step/docUpload rejectionReasons: [ ] awaitingStep: docUpload personInfo: firstName: Joe lastName: Verify email: joe.verify@sheerid.com birthDate: '1991-01-01' metadata: my: stuff organization: id: 1234 name: Some Organization docUploadRejectionCount: 0 docUploadRejectionReasons: [ ] verificationMethod: null confirmedSegments: [ ]