swagger: '2.0' info: title: Mastercard Bill Payment Validator Account Opening Verifications API description: This service is provided on behalf of the Mastercard Remote Payment and Presentment (RPPS) Bill Payment Processing Network, which supports consumer to business "push" bill payments (i.e. those which are not funded by debit/credit card transactions) in the U.S. version: '1.0' x-artifactId: billpay-api contact: name: Bill Pay Development Support email: Bill_Pay_Development_Support@mastercard.com host: sandbox.api.mastercard.com basePath: /billpayAPI/v1 schemes: - https consumes: - application/json produces: - application/json tags: - name: Verifications paths: /email-otp-verifications: post: tags: - Verifications responses: '200': $ref: '#/components/responses/OtpVerificationsResponse' '400': $ref: '#/components/responses/BadRequestError' '401': $ref: '#/components/responses/UnauthorizedError' '403': $ref: '#/components/responses/ForbiddenError' description: 'Take in `otpId` and code in the request body. It checks if the provided code matches the one-time password generated for the OTP request and returns the result. Does not require a minimum authentication standard. **This API is mandatory.** ' summary: Add & Validate an Email Address Verify an OTP Code. operationId: verifyEmailOTP parameters: - $ref: '#/components/parameters/XUserIdentityParameter' - $ref: '#/components/parameters/XEncryptedPayload' requestBody: $ref: '#/components/requestBodies/EmailOtpVerificationsRequest' /sms-otp-verifications: post: tags: - Verifications responses: '200': $ref: '#/components/responses/OtpVerificationsResponse' '400': $ref: '#/components/responses/BadRequestError' '401': $ref: '#/components/responses/UnauthorizedError' '403': $ref: '#/components/responses/ForbiddenError' description: 'Add the `otpId` and code in the request body. It checks if the provided code matches the one-time password generated for the OTP request and returns the result. Does not require a minimum authentication standard. **This API is mandatory.** ' summary: Add & Validate a Phone Number Verify an OTP Code. operationId: verifySMSOTP parameters: - $ref: '#/components/parameters/XUserIdentityParameter' - $ref: '#/components/parameters/XEncryptedPayload' requestBody: $ref: '#/components/requestBodies/SmsOtpVerificationsRequest' /document-verifications/document-data-retrievals: post: tags: - Verifications responses: '200': $ref: '#/components/responses/DocumentDataRetrievalsResponse' '400': $ref: '#/components/responses/BadRequestError' '403': $ref: '#/components/responses/ForbiddenError' '404': $ref: '#/components/responses/NotFoundError' description: "Informs if the document verification is still being processed or is\nprocessed already. If `SUCCESS`, the document data is returned. \n**This API is mandatory.**\n" summary: Retrieve the details of a document. operationId: retrieveDocumentData parameters: - $ref: '#/components/parameters/XEncryptedPayload' requestBody: $ref: '#/components/requestBodies/DocumentDataRetrievalsRequest' put: tags: - Verifications responses: '200': $ref: '#/components/responses/DocumentDataRetrievalsResponse' '400': $ref: '#/components/responses/BadRequestError' '403': $ref: '#/components/responses/ForbiddenError' '404': $ref: '#/components/responses/NotFoundError' description: "Informs if the document verification for the additional document is still being processed (PENDING)\nor is processed already (SUCCESS). If SUCCESS, the document data is\nreturned. \n**This API is mandatory.**\n" summary: Add and Validate a Document - Retrieve the details of an additional document. operationId: retrieveMultiDocumentData parameters: - $ref: '#/components/parameters/XUserIdentityParameter' - $ref: '#/components/parameters/XEncryptedPayload' requestBody: $ref: '#/components/requestBodies/MultiDocumentDataRetrievalsRequest' /document-verifications/document-data-confirmations: post: tags: - Verifications responses: '200': $ref: '#/components/responses/DocumentDataConfirmationsResponse' '400': $ref: '#/components/responses/BadRequestError' '401': $ref: '#/components/responses/UnauthorizedError' '403': $ref: '#/components/responses/ForbiddenError' '404': $ref: '#/components/responses/NotFoundError' description: "- After the user verifies and checks if the data extracted from the\ndocuments match the current status (for example, Address).\n\n- The user sends data back to MIDS to confirm the details.\n\n- Perform verifications with IVPs and store the data into the PDS. \n**This API is mandatory.**\n" summary: Add and Validate a Document - Confirm the details of a document. operationId: confirmDocumentData parameters: - $ref: '#/components/parameters/XUserIdentityParameter' - $ref: '#/components/parameters/XEncryptedPayload' requestBody: $ref: '#/components/requestBodies/DocumentDataConfirmationsRequest' /document-verifications/identity-attributes: put: tags: - Verifications responses: '200': $ref: '#/components/responses/DocumentDataConfirmationsResponse' '400': $ref: '#/components/responses/BadRequestError' '401': $ref: '#/components/responses/UnauthorizedError' '403': $ref: '#/components/responses/ForbiddenError' '404': $ref: '#/components/responses/NotFoundError' description: "After the user verifies and confirms the conflict attribute, the user\nsends data back to MIDS to confirm the details. This API will\nperform verifications with IVPs and store the data into the PDS. \n**This API is mandatory.**\n" summary: Add and Validate a Document - Resolve a conflict between identity attributes. operationId: updateIdentityAttribute parameters: - $ref: '#/components/parameters/XUserIdentityParameter' - $ref: '#/components/parameters/XEncryptedPayload' requestBody: $ref: '#/components/requestBodies/UpdateIdentityAttributesRequest' /document-verifications/update-id-confirmations: put: tags: - Verifications responses: '200': $ref: '#/components/responses/UpdateIdConfirmationsResponse' '400': $ref: '#/components/responses/BadRequestError' '401': $ref: '#/components/responses/UnauthorizedError' '404': $ref: '#/components/responses/NotFoundError' description: "Delete the document verification data on the Identity verification vendor\nonce the user confirms the PDS update. \n**This API is mandatory.**\n" summary: Add and Validate a Document - Confirm the identity was stored to the PDS. operationId: updateIdConfirmation parameters: - $ref: '#/components/parameters/XUserIdentityParameter' requestBody: $ref: '#/components/requestBodies/UpdateIdConfirmationsRequest' /source-verifications/{issuing_country}/medicare-cards: post: x-mastercard-api-encrypted: true summary: Verifies the details of a medicare card document with an identity verification provider tags: - Verifications responses: '200': $ref: '#/components/responses/MedicareCardSourceVerificationResponse' '400': $ref: '#/components/responses/BadRequestError_2' '403': $ref: '#/components/responses/ForbiddenError_2' '404': $ref: '#/components/responses/NotFoundError_2' description: Returns the status of the Medicare Card source verification as it's being processed by the vendor. Biometrics are not used with this API, which means document scanning is not required for the users to verify their identity. This will be a one-time verification with no data being stored. operationId: verifyMedicareCard parameters: - $ref: '#/components/parameters/IssuingCountryParameter' - $ref: '#/components/parameters/EncryptedPayloadParameter' requestBody: $ref: '#/components/requestBodies/MedicareCardSourceVerificationRequest' /source-verifications/{issuing_country}/passports: post: x-mastercard-api-encrypted: true summary: Verifies the details of a passport document with an identity verification provider tags: - Verifications responses: '200': $ref: '#/components/responses/PassportSourceVerificationResponse' '400': $ref: '#/components/responses/BadRequestError_2' '403': $ref: '#/components/responses/ForbiddenError_2' description: Returns the Status of the Source Verification that has been processed by a trusted IVP. operationId: verifyPassport parameters: - $ref: '#/components/parameters/IssuingCountryParameter' - $ref: '#/components/parameters/EncryptedPayloadParameter' requestBody: $ref: '#/components/requestBodies/PassportSourceVerificationRequest' /source-verifications/{issuing_country}/driving-licenses: post: x-mastercard-api-encrypted: true summary: Verifies the details of a driving license document with an identity verification provider tags: - Verifications responses: '200': $ref: '#/components/responses/DriversLicenseSourceVerificationResponse' '400': $ref: '#/components/responses/BadRequestError_2' '403': $ref: '#/components/responses/ForbiddenError_2' description: Returns the Status of the Source Verification that has been processed by a trusted IVP. operationId: verifyDriversLicense parameters: - $ref: '#/components/parameters/IssuingCountryParameter' - $ref: '#/components/parameters/EncryptedPayloadParameter' requestBody: $ref: '#/components/requestBodies/DriversLicenseSourceVerificationRequest' components: schemas: TpAuditMetadata: required: - sessionId - transactionGroupId type: object description: Object containing metadata related to the request. properties: sessionId: type: string description: UUID which uniquely identifies a set of transactions being executed within the same authentication session. pattern: ^[0-9a-fA-F]{8}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{12}$ minLength: 36 maxLength: 36 example: be3ad617-04ad-43e1-a438-79425b6511b6 transactionGroupId: type: string description: UUID which uniquely identifies a set of transactions being executed within a single use-case. pattern: ^[0-9a-fA-F]{8}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{12}$ minLength: 36 maxLength: 36 example: be3ad617-04ad-43e1-a438-79425b6511b6 Locale: type: string description: IETF BCP 47 code which identifies the language to be used in any dialogs being shown to the user during the flow. The default value is "en-US". pattern: ^[a-z]{2}-[a-zA-Z]{2}$ example: en-US ConfirmedPDS: required: - pds - transactionId type: object properties: transactionId: type: string description: 'UUID represents the MIDS transaction. ' minLength: 36 maxLength: 36 example: 021fea3c-d17c-11ea-87d0-0242ac130003 pds: $ref: '#/components/schemas/PDS' fraudDetectionMeta: $ref: '#/components/schemas/FraudDetectionMeta' eligibleForMobileID: type: boolean description: Indicates whether user is eligible to enroll with Mobile ID. example: false AddressData: type: object properties: addressLine1: type: string description: Address line 1. minLength: 1 maxLength: 255 example: 36271 GrandRiver Ave addressLine2: type: string description: Address line 2. minLength: 1 maxLength: 255 example: Building no 2 addressZipCode: type: string description: Zip code. minLength: 1 maxLength: 255 example: 48335 addressCity: type: string description: City. minLength: 1 maxLength: 255 example: Farmington addressSubdivision: type: string description: Subdivision of the user address, possible values include county, state, province, and municipality. minLength: 2 maxLength: 2 example: MO addressCountry: type: string description: Country provided in the address from the scanned document. minLength: 1 maxLength: 255 example: USA IdentityAttributes: type: array description: Array of attribute name-value pairs, which indicate the users preferred values for the attributes listed. items: $ref: '#/components/schemas/IdentityAttributeItem' DocumentDataStatus: description: Object containing the details of the document whose accuracy has been confirmed by the user. required: - dateOfBirth - documentNumber - documentStatus - documentType - expiryDate - firstName - gender - issuingCountry - issuingDate - lastName allOf: - $ref: '#/components/schemas/DocumentData' - type: object properties: documentStatus: type: string description: Document status. minLength: 1 maxLength: 7 example: SUCCESS DocumentVerificationConfirmData: required: - documentData - userConsent - userProfileId - countryCode - locale type: object properties: sdkAuditEvents: type: array description: Array of objects containing a record of any auditable steps occurring between the App and the SDK. A call must be made by the TP App from the MIDS Audit SDK prior to all API calls, with any audit events included in the subsequent call. items: $ref: '#/components/schemas/AuditEventsItem' tpAuditMetadata: $ref: '#/components/schemas/TpAuditMetadata' arid: $ref: '#/components/schemas/ARID' documentData: $ref: '#/components/schemas/ConfirmDocumentData' userProfileId: type: string description: UUID identifying the user, which the TP App generates using the MIDS Core SDK. pattern: ^[0-9a-fA-F]{8}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{12}$ example: 1f52649e-4096-456a-bca0-751ee4703058 userConsent: $ref: '#/components/schemas/UserConsent' countryCode: $ref: '#/components/schemas/CountryCode' locale: $ref: '#/components/schemas/Locale' fraudDetection: $ref: '#/components/schemas/FraudDetection' deviceInfo: $ref: '#/components/schemas/DeviceInfo' visaMatched: type: boolean description: Flag indicating if the documentDetails are to be checked against a visa for a particular country. example: false sdkVersion: $ref: '#/components/schemas/SdkVersion' BaseEvidenceData: type: object properties: lastName: type: string description: Last name. minLength: 1 maxLength: 255 example: Doe firstName: type: string description: First name. minLength: 1 maxLength: 255 example: John dateOfBirth: type: string description: Date of birth. minLength: 10 maxLength: 10 example: '1996-07-10T00:00:00.000Z' issuingCountry: type: string description: Country code. minLength: 1 maxLength: 255 example: USA issuingDate: type: string description: Issuing date. minLength: 10 maxLength: 10 example: '1996-07-10T00:00:00.000Z' expiryDate: type: string description: Expiry date. minLength: 10 maxLength: 10 example: '1996-07-10T00:00:00.000Z' gender: type: string description: M/F. example: M minLength: 1 maxLength: 1 fathersName: type: string description: Father's Name. This will only be available when the Brazilian DL is scanned. scanned. minLength: 1 maxLength: 255 example: John Smith mothersName: type: string description: Mother's Name. This will only be available when the Brazilian DL is scanned. minLength: 1 maxLength: 255 example: Paula Smith PDS: type: string description: Encrypted Personal Device Storage (PDS) which hosts the users identity attributes. The PDS can be retrieved from the MIDS Core SDK, please refer to the SDK guide for details on how to retrieve this. pattern: ^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$ minLength: 1 example: ZGZnZGVmZ2RnZGVnZXJnZXJncmRnZXJ5aGdld3J0eWJld3J5dHdleXd5d3l3cmFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh FraudDetection: type: object description: Object containing the signals from the device to be used for fraud detection. properties: nuDetectMeta: description: The data retrieved from the MIDS Fraud Detection SDK which will be used to determine whether the device is trusted. required: - behaviourData - remoteIp - sessionId - requestUrl - userAgent - xForwardedFor type: object properties: behaviourData: type: string description: base64 encoded JSON generated by MIDS (nuDetect) SDK. pattern: ^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$ example: ewogICJuZHMtcG1kIiA6ICJ7XCJmdnFcIjpcIjBONjROOVAzLVBPM1ItNDcyNi04MDBPLTNQMzM2Mzg2Tk5RT1wiLFwianZxdHJnUW5nblwiOntcInp2cXNpXCI6XCJRUTYzOTc5Ny1OUFAyLTQ0OVItOVA0MS04UTM0NDdOODU5UzdcIixcInpjdlwiOlwidmJmXCIsXCJ6b3pzXCI6XCJOY2N5clwiLFwiemZ6XCI6MTcxNzk4NjkxODQsXCJqeGVcIjo0OTcwLFwiem9vXCI6XCJOY2N5clwiLFwienVmXCI6W1wienZ6Z1wiXSxcInF2cWdtXCI6NDIwLFwidmNlXCI6XCJhcHZjLDAsNXM5bzg0MXAsMywxO2ZnLDAsYXF2Y2V2YWNoZzAsMCxhcXZjZXZhY2hnMSwwO3NzLDAsYXF2Y2V2YWNoZzA7eHEsc3A7eHEsNG47eHEsNW87eHEsNjY7eHEsMjUzO3hxLDg1O3hxLHBxO3hxLDM4O3hxLDVuO3hxLDcyO3hxLDU2O3hxLDUyO3hxLDJwO3NvLG45LGFxdmNldmFjaGcwO3NzLDEsYXF2Y2V2YWNoZzE7eHEsMTI1O3hxLDQwO3hxLG82O3hxLDRyO3hxLG87Z3IscXMsNzcsMjM0LGFxdmNlcGJhZ2VieTBcIixcInpjemlcIjoxMixcInpvelwiOlwidkN1YmFyXCIsXCJ6Y3p2aVwiOjIsXCJ6ZmZcIjo0OTk5NjMxNzQ5MTIsXCJ6dW9wZlwiOi0xLFwiem9jXCI6XCJ2Q3ViYXIgS8qAXCIsXCJ6dmh2XCI6XCJjdWJhclwiLFwiZmVcIjpcIjE3OTJrODI4XCIsXCJoblwiOlwiMi4yLjEzODA2NVwiLFwiemh5XCI6XCJIRlwifSxcImpnXCI6XCIxLmotNDUxNjgwLjEuMi56U0dVQk56cHZNeUFoQjBOR2h2ZlRqLCwuM3hCRWhxSGhKZFREb1ZYY0hjYXJOSDUzVWFFS2t2amxNVF9RQTl5dUlYcWUwbV9iX0k0WWtBWGExUExTVXJzS1R4c0NFWHB2bkJjNkpEajhNTzhGZFVXMEcyaE9BWXZDRWZ5NXRLOHdJdVN4MzBnZmszZDF0MWhnc2NJODdFTG9MVlozNi1BcjhhV0pFSjJ1Ungza3RJYW5teDktOExZZmZsMWlFbVhSd1pqQ3FaQTVVMUZ1dzYzUERKZ2lIYzFUendFVjN3ak8yZDBrbUZIWUJaZTAxd0hnajVKQThTM0R6Z3FydE9pN1d3Q0VqZldZMHFITXFGT1g1d2RBYkl5LVNmOGVkYXBaeHNxaTItc0N6ejhRN2osLFwifSIsCiAgInNpZCIgOiAiMEE2NEE5QzMtQ0IzRS00NzI2LTgwMEItM0MzMzYzODZBQURCIgp9 remoteIp: type: string description: The IP of user app to TP backend. minLength: 1 maxLength: 255 example: 127.0.0.1 sessionId: type: string description: UUID which uniquely identifies a set of transactions being executed within the same authentication session. minLength: 36 maxLength: 36 example: da3fe5be-2a8e-11eb-adc1-0242ac120002 userAgent: type: string description: The user-agent sent by the app to the TP backend. minLength: 1 maxLength: 255 example: 'Mozilla: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.3 Mozilla/5.0 (Macintosh; Intel Mac OS X x.y; rv:42.0) Gecko/20100101 Firefox/43.4.' xForwardedFor: type: string description: X-Forwarded-For header sent by the app to TP backend. minLength: 1 maxLength: 255 example: 203.0.113.195,70.41.3.18,150.172.238.178 requestUrl: type: string description: The requested URL is hit by the app to the TP backend. pattern: ^(https?:\/\/(?:www\.|(?!www))[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\.[^\s]{2,}|www\.[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\.[^\s]{2,}|https?:\/\/(?:www\.|(?!www))[a-zA-Z0-9]+\.[^\s]{2,}|www\.[a-zA-Z0-9]+\.[^\s]{2,})$ example: http://tp-backend.com/api/path UpdateIdentityAttributesData: required: - pds - userConsent - identityAttributes type: object properties: identityAttributes: description: Array of attribute name-value pairs, which indicate the users preferred values for the attributes listed. $ref: '#/components/schemas/IdentityAttributes' pds: $ref: '#/components/schemas/PDS' userConsent: $ref: '#/components/schemas/UserConsent' tpAuditMetadata: $ref: '#/components/schemas/TpAuditMetadata' sdkVersion: $ref: '#/components/schemas/SdkVersion' DocumentData: description: Object containing the details of the document whose accuracy has been confirmed by the user. required: - dateOfBirth - documentNumber - documentStatus - documentType - expiryDate - firstName - gender - issuingCountry - issuingDate - lastName allOf: - $ref: '#/components/schemas/AddressData' - $ref: '#/components/schemas/BaseEvidenceData' - type: object properties: documentNumber: type: string description: Document number. minLength: 1 maxLength: 255 example: 1LViI488YkFZh8YjNlLf61BMn29cmQn documentType: type: string description: The type of the document as specified by the user. minLength: 1 maxLength: 50 example: passport issuingPlace: type: string description: Issuing place. minLength: 1 maxLength: 50 example: New York issuingAuthority: type: string description: Issuing authority. minLength: 1 maxLength: 50 example: United States placeOfBirth: type: string description: Place of birth. minLength: 1 maxLength: 255 example: Boston issuingState: type: string description: State. minLength: 2 maxLength: 100 example: MO formattedAddress: type: string description: Formatted address. minLength: 1 maxLength: 200 example: 220 BLVD O FALLON MO rgNumber: type: string description: RG Number. This will only be available when the Brazilian DL is scanned. minLength: 1 maxLength: 255 example: 12345 cpf: type: string description: CPF Number. This will only be available when the Brazilian DL is scanned. minLength: 1 maxLength: 255 example: 12345 cardNumber: type: string description: The Driver's License card number was introduced to the Australian Driver's License as a verifiable field. It is currently only available for six Australian jurisdictions. This field is optional. minLength: 1 maxLength: 255 example: C876687JK ErrorResponse: required: - Errors type: object description: The error response model used by all the API endpoints. properties: Errors: required: - Error type: object description: The error response model used by all the API endpoints. properties: Error: type: array description: A list of Error objects. minItems: 1 items: type: object properties: Source: type: string description: The source of the problem. That is where the error occurred. example: mids ReasonCode: type: string description: A code defining the error, as defined in documentation. example: USER_PROFILE_ID_NOT_FOUND Description: type: string description: A description of this specific occurrence of the Reason code. example: The provided user profile ID does not exist. Recoverable: type: boolean description: Whether or not retrying this request could result in a successful response. example: false Details: type: string description: More details of this specific error. This is an optional field and is sometimes used to give a more comprehensive description of the error that has occurred, when required. example: User X was not found redirectUri: type: string description: TP will use this URI to redirect to RP. pattern: ^(https?:\/\/(?:www\.|(?!www))[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\.[^\s]{2,}|www\.[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\.[^\s]{2,}|https?:\/\/(?:www\.|(?!www))[a-zA-Z0-9]+\.[^\s]{2,}|www\.[a-zA-Z0-9]+\.[^\s]{2,})$ example: https://sample-rp-redirect-uri.com/?error=invalid_scope&state=AJahbadinvjbdvdnvljkdnvdfhsrbghrtiu4w&ARID=1234&error_description=claim_not_satisfied OtpVerification: required: - code - countryCode - userConsent - otpId - pds type: object properties: code: type: string description: The 6-digit code sent to the user. pattern: ^[0-9]{6}$ minLength: 6 maxLength: 6 example: '123456' otpId: type: string description: The Otp ID in the response body to create an OTP request. pattern: ^[0-9a-fA-F]{8}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{12}$ minLength: 36 maxLength: 36 example: 63d04933-02b6-4ea4-adf9-68696e675a01 countryCode: $ref: '#/components/schemas/CountryCode' userConsent: $ref: '#/components/schemas/UserConsent' pds: $ref: '#/components/schemas/PDS' sdkAuditEvents: type: array description: Array of objects containing a record of any auditable steps occurring between the App and the SDK. A call must be made by the TP App from the MIDS Audit SDK prior to all API calls, with any audit events included in the subsequent call. items: $ref: '#/components/schemas/AuditEventsItem' tpAuditMetadata: $ref: '#/components/schemas/TpAuditMetadata' arid: $ref: '#/components/schemas/ARID' sdkVersion: $ref: '#/components/schemas/SdkVersion' AuditEventsItem: type: object properties: dateTime: type: string description: Date and time at which the event is created. minLength: 1 maxLength: 29 example: '2020-01-28T13:16:01.714-05:00' softwareVersion: type: string description: Software version. minLength: 1 maxLength: 30 example: 1.0.0 userProfileId: type: string description: UUID identifying the user, which the TP App generates using the MIDS Core SDK. pattern: ^[0-9a-fA-F]{8}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{12}$ example: df52649e-4096-456a-bca0-751ee470009f sessionId: type: string description: UUID which uniquely identifies a set of transactions being executed within the same authentication session. pattern: ^[0-9a-fA-F]{8}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{12}$ minLength: 36 maxLength: 36 example: 123ae1aa-6744-433e-879d-7da48d631234 transactionGroupId: type: string description: UUID which uniquely identifies a set of transactions being executed within a single use-case. pattern: ^[0-9a-fA-F]{8}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{12}$ minLength: 36 maxLength: 36 example: 28eae1aa-6744-433e-879d-7da48d63e89a logRequestFlow: type: string description: Log Request Flow. minLength: 1 maxLength: 255 example: CoreSDK-TP logEvent: type: string description: Log Event. minLength: 0 maxLength: 255 example: ID Enrollment logEventType: type: string description: Log Event Type. minLength: 1 maxLength: 255 example: User Profile Creation osVersion: type: string description: OS version. minLength: 1 maxLength: 255 example: Android 5.0 deviceMake: type: string description: Device make. minLength: 1 maxLength: 255 example: Samsung S10 type: type: string description: Type of the event. minLength: 1 maxLength: 255 example: audit audit: type: object description: Represents the audit event. properties: privacyPolicy: type: string description: Version user confirmed. minLength: 1 maxLength: 20 example: 1.0.0 userBiometricConsent: type: string description: User consent to capture details. enum: - 'TRUE' - 'FALSE' - NA minLength: 4 maxLength: 5 example: 'TRUE' event: type: string description: Event. minLength: 1 maxLength: 255 example: Document Scan eventType: type: string description: EventType. minLength: 1 maxLength: 255 example: Enrollment result: type: string description: API Call result. enum: - 'TRUE' - 'FALSE' - FAIL minLength: 4 maxLength: 5 example: 'TRUE' eventGeneratedSource: type: string description: Event generated source. minLength: 1 maxLength: 50 example: CoreSDK owner: type: string description: Owner. minLength: 2 maxLength: 4 example: TP requestDetails: type: object description: Request Details. example: Request URL responseDetails: type: object description: Response Details. example: Response Data SdkVersion: type: string description: Mastercard SDK version integrated with TP App, it is a constant extracted from MIDS SDK Configurations (generated while bundling SDK artifacts). If the TP app supports split PDS, this attribute MUST be specified. pattern: ^[0-9]{1,5}\.[0-9]{1,5}\.[0-9]{1,5}$ minLength: 5 maxLength: 255 example: 2.3.0 DocumentDataRetrieval: required: - countryCode - workflowId - userConsent - userProfileId - locale - userSelectedCountry - documentType type: object properties: countryCode: $ref: '#/components/schemas/CountryCode' userSelectedCountry: type: string description: An ISO 3166-1 alpha-3 code corresponding to the issuing country of the document as specified by the user. pattern: ^[a-zA-Z]{3}$ maxLength: 3 example: USA documentType: type: string description: The type of the document as specified by the user. enum: - PASSPORT - DRIVING_LICENSE minLength: 8 maxLength: 15 example: PASSPORT locale: $ref: '#/components/schemas/Locale' userProfileId: type: string description: UUID identifying the user, which the TP App generates using the MIDS Core SDK. pattern: ^[0-9a-fA-F]{8}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{12}$ maxLength: 36 example: df52649e-4096-456a-bca0-751ee470009f workflowId: type: string description: UUID returned to the TP after the initial enrollment / re-authentication is completed, which is used to return the outcome of the associated verification process. pattern: ^[0-9a-fA-F]{8}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{12}$ minLength: 36 maxLength: 36 example: df52649e-4096-456a-bca0-751ee470009f userConsent: $ref: '#/components/schemas/UserConsent' privacyPolicyVersion: type: string description: The version of the privacy policy which the API call is being conducted under, this can be retrieved from the MIDS Core SDK. minLength: 1 maxLength: 20 example: 1.0.0 sdkAuditEvents: type: array description: Array of objects containing a record of any auditable steps occurring between the App and the SDK. A call must be made by the TP App from the MIDS Audit SDK prior to all API calls, with any audit events included in the subsequent call. items: $ref: '#/components/schemas/AuditEventsItem' tpAuditMetadata: $ref: '#/components/schemas/TpAuditMetadata' arid: $ref: '#/components/schemas/ARID' sdkVersion: $ref: '#/components/schemas/SdkVersion' UserConsent: enum: - ACCEPT - DECLINE - REVOKE - EXPIRE type: string description: Confirmation provided by the TP that the user has consented that the ID-Network can have access to their identity for the purposes of the API call. Should be ACCEPT, a forbidden exception will be thrown if it is any other value. pattern: ^(ACCEPT|DECLINE|REVOKE|EXPIRE)$ minLength: 6 maxLength: 7 example: ACCEPT MultiDocumentDataRetrieval: required: - countryCode - workflowId - userConsent - userProfileId - locale - pds allOf: - type: object properties: pds: $ref: '#/components/schemas/PDS' - $ref: '#/components/schemas/DocumentDataRetrieval' DocumentVerificationExtractedData: required: - status - transactionId type: object properties: documentData: $ref: '#/components/schemas/DocumentDataStatus' status: description: The status of the Status API, possible values are SUCCESS and PENDING. type: string minLength: 1 maxLength: 10 example: SUCCESS transactionId: type: string description: A random 128-bit. UUID represents the MIDS transaction. minLength: 36 maxLength: 36 example: 1ec14310-e85c-11ea-adc1-0242ac120002 ARID: type: string description: A unique identifier for any activity being executed arising out of a Claim Share request. This value is passed as a parameter in the URL redirecting a User to the TP Flow during a Claim Share. format: uuid pattern: ^[0-9a-fA-F]{8}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{12}$ minLength: 36 maxLength: 36 example: a15fa6de-b199-11eb-8529-0242ac130003 FraudDetectionMetaRequiredItem: description: An item that is required from fraud detection meta. type: object properties: field: type: string description: The property which is required. minLength: 1 maxLength: 255 example: email assuranceLevel: type: integer description: The assurance level required for the property. minimum: 0 example: 1 DeviceInfo: description: Object containing the details of the device from which the enrollment is being conducted. required: - deviceAppId - make - model type: object properties: deviceAppId: type: string description: The device application ID is retrieved from the mobile SDK. minLength: 1 maxLength: 255 example: 599F9C00-92DC-4B5C-9464-7971F01F8370 make: type: string description: The make of the mobile device. minLength: 1 maxLength: 255 example: Samsung model: type: string description: The model of the mobile device. minLength: 1 maxLength: 255 example: S8 IdentityAttributeItem: type: object description: Identity attributes array item. properties: attributeName: type: string description: The name of the attribute to update. enum: - LEGAL_NAME - FATHERS_NAME - MOTHERS_NAME minLength: 1 maxLength: 50 example: LEGAL_NAME attributeValue: type: string description: A value that the user picked to represent the default value of this attribute. The value needs to match with one of the scanned documents. minLength: 1 maxLength: 255 example: BALL,ELLA FraudDetectionMeta: description: Fraud detection meta-data. type: object properties: requiredAttributes: type: array items: $ref: '#/components/schemas/FraudDetectionMetaRequiredItem' CountryCode: type: string description: The country code of the country where the transaction originates from. pattern: ^[a-zA-Z]{2}$ example: US OtpVerificationResult: required: - pds - responseCode - responseMessage - transactionId type: object properties: responseCode: description: '`SUCCESS`, `FAILURE` or `ATTEMPTS_EXCEEDED`.' type: string minLength: 7 maxLength: 50 example: SUCCESS responseMessage: type: string description: A short message describing the response code. minLength: 1 maxLength: 100 example: OTP verified attemptsRemaining: type: integer description: The number of attempts remaining. This field is only populated for the `FAILURE` response code. format: int32 minimum: 1 maximum: 10 example: 2 transactionId: type: string description: A random 128-bit UUID represents the transaction. minLength: 1 maxLength: 40 example: 28eae1aa-6744-433e-879d-7da48d63e89a pds: $ref: '#/components/schemas/PDS' ConfirmDocumentData: required: - dateOfBirth - documentNumber - documentType - workflowId - expiryDate - firstName - issuingCountry - lastName description: Document data to be verified. allOf: - $ref: '#/components/schemas/DocumentData' - type: object properties: workflowId: type: string description: UUID returned to the TP after the initial enrollment / re-authentication is completed, which is used to return the outcome of the associated verification process. pattern: ^[0-9a-fA-F]{8}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{12}$ example: be3ad617-04ad-43e1-a438-79425b6511b6 DocumentIdConfirmation: required: - countryCode - workflowId - userProfileId - eventType type: object properties: countryCode: $ref: '#/components/schemas/CountryCode' workflowId: type: string description: UUID returned to the TP after the initial enrollment / re-authentication is completed, which is used to return the outcome of the associated verification process. pattern: ^[0-9a-fA-F]{8}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{12}$ maxLength: 36 minLength: 36 example: df52649e-4096-456a-bca0-751ee470009f userProfileId: type: string description: UUID identifying the user, which the TP App generates using the MIDS Core SDK. pattern: ^[0-9a-fA-F]{8}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{12}$ maxLength: 36 minLength: 36 example: df52649e-4096-456a-bca0-751ee470009f eventType: type: string description: ENROLLMENT or AUTHENTICATION. enum: - ENROLLMENT - AUTHENTICATION minLength: 10 maxLength: 14 example: ENROLLMENT sdkAuditEvents: type: array description: Array of objects containing a record of any auditable steps occurring between the App and the SDK. A call must be made by the TP App from the MIDS Audit SDK prior to all API calls, with any audit events included in the subsequent call. items: $ref: '#/components/schemas/AuditEventsItem' tpAuditMetadata: $ref: '#/components/schemas/TpAuditMetadata' arid: $ref: '#/components/schemas/ARID' sdkVersion: $ref: '#/components/schemas/SdkVersion' MedicareCardSourceVerificationRequestAttributes: required: - userConsent - cardColor - nameLine1 - medicareCardNo - individualReferenceNo - countryCode - expiryDate properties: userConsent: description: The value which best reflects the input of the User with regard to consent to use their data. enum: - ACCEPT - DECLINE - REVOKE - EXPIRE type: string example: ACCEPT minLength: 6 maxLength: 7 cardColor: description: Medicard Color can be GREEN, BLUE OR YELLOW. enum: - GREEN - BLUE - YELLOW type: string example: BLUE minLength: 4 maxLength: 6 nameLine1: description: Name Line 1. example: Smith type: string minLength: 1 maxLength: 27 pattern: ^[a-zA-Z\s ,.'-]{1,27}$ medicareCardNo: description: Unique number for Medicare card. type: string maxLength: 10 example: '1234567890' pattern: ^[0-9]{10}$ individualReferenceNo: description: Individual Reference Number. type: string maxLength: 1 example: '1' pattern: ^[0-9]{1}$ countryCode: description: Country code (case insensitive) as described in the ISO 3166-1 alpha-3 international standard. type: string example: AUS pattern: ^[a-zA-Z]{3} expiryDate: example: '2000-12-31' description: The expiry date as it appears on the card, following the color and format. Green card YYYY-MM, Yellow or Blue card YYYY-MM-DD. type: string minLength: 7 maxLength: 10 nameLine2: description: Name Line 2. example: Steve type: string minLength: 1 maxLength: 25 pattern: ^[a-zA-Z\s ,.'-]{1,25}$ nameLine3: description: Name Line 3. example: Baven type: string minLength: 1 maxLength: 23 pattern: ^[a-zA-Z\s ,.'-]{1,23}$ nameLine4: description: Name Line 4. example: Mike type: string minLength: 1 maxLength: 21 pattern: ^[a-zA-Z\s ,.'-]{1,21}$ birthDate: example: '2010-10-25' description: YYYY-MM-DD format. type: string format: date minLength: 10 maxLength: 10 pattern: ^[0-9]{4}-[0-1][0-9]-[0-3][0-9] MedicareCardSourceVerificationResult: required: - verificationResult type: object properties: verificationResult: type: string example: DOCUMENT_VERIFIED description: 'Verification Results, following : DOCUMENT_VERIFIED - Document matches with the IVP registered document, DOCUMENT_NOT_VERIFIED - Document does not match with any of the IVP registered document, DOCUMENT_INVALID - Document is invalid or not electronically captured.' minLength: 16 maxLength: 21 ApiError: required: - Errors type: object properties: Errors: $ref: '#/components/schemas/Errors' PassportSourceVerificationRequestAttributes: required: - documentNumber - userConsent - firstName - lastName - dateOfBirth type: object properties: documentNumber: description: Document Number. type: string example: N1234567 pattern: ^[0-9a-zA-Z\-]{1,50}$ userConsent: description: The value which best reflects the input of the User with regard to consent to use their data. enum: - ACCEPT - DECLINE - REVOKE - EXPIRE type: string example: ACCEPT minLength: 6 maxLength: 7 dateOfBirth: description: YYYY-MM-DD format. type: string format: date example: '1990-01-01' pattern: ^[0-9]{4}-[0-1][0-9]-[0-3][0-9]$ firstName: description: Users First Name. type: string example: John pattern: ^[a-zA-Z\s ,.'-]{1,255}$ lastName: description: Users Last Name. type: string example: Smith pattern: ^[a-zA-Z\s ,.'-]{1,255}$ gender: description: Users Gender. type: string example: M pattern: ^[M|F|X]$ visaMatched: type: boolean description: Whether visa verification is required. example: true visaIssuingCountry: description: Visa issuing country. type: string example: AUS pattern: ^[A-Z]{3}$ OtpVerification_2: required: - code - countryCode - otpId type: object properties: code: description: The 6-digit code which was sent to the user. type: string example: '123456' pattern: ^[0-9]{6}$ minLength: 6 maxLength: 6 otpId: minLength: 36 maxLength: 36 description: The otpId in the response body of create otp request. type: string example: 63d04933-02b6-4ea4-adf9-68696e675a01 pattern: ^[0-9a-fA-F]{8}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{12}$ countryCode: minLength: 2 maxLength: 2 description: The ISO 3166-1 alpha2 code which corresponds to the country from where the request to ID is originating from. type: string pattern: ^[a-zA-Z]{2}$ example: BR userConsent: description: The value which best reflects the input of the User with regard to consent to use their data. enum: - ACCEPT - DECLINE - REVOKE - EXPIRE type: string example: ACCEPT DriversLicenseSourceVerificationRequestAttributes: required: - documentNumber - userConsent - firstName - lastName - dateOfBirth - stateCode - cardNumber type: object properties: documentNumber: description: Document Number. type: string example: AB001234567 pattern: ^[0-9a-zA-Z\-]{1,50}$ userConsent: description: The value which best reflects the input of the User with regard to consent to use their data. enum: - ACCEPT - DECLINE - REVOKE - EXPIRE type: string example: ACCEPT minLength: 6 maxLength: 7 dateOfBirth: description: YYYY-MM-DD format. type: string format: date example: '1990-01-01' pattern: ^[0-9]{4}-[0-1][0-9]-[0-3][0-9]$ firstName: description: Users First Name. type: string example: John pattern: ^[a-zA-Z\s ,.'-]{1,255}$ lastName: description: Users Last Name. type: string example: Smith pattern: ^[a-zA-Z\s ,.'-]{1,255}$ stateCode: description: State code. type: string example: NSW pattern: ^[a-zA-Z]{2,3}$ cardNumber: description: Users DVS Card Number. type: string example: AB45864 Errors: description: List of Errors. example: $ref: '#/components/examples/NotFoundExample_2' required: - Error type: object properties: Error: $ref: '#/components/schemas/ErrorList' ErrorList: description: Error Details. type: array minItems: 1 items: $ref: '#/components/schemas/Error' OtpVerificationResult_2: required: - responseCode - responseMessage - transactionId type: object properties: responseCode: description: '`SUCCESS`, `FAILURE` or `ATTEMPTS_EXCEEDED`.' type: string example: SUCCESS minLength: 1 maxLength: 17 responseMessage: description: A short message describing the response code. type: string example: OTP verified minLength: 1 maxLength: 255 transactionId: description: The transaction ID provided in the API response must be logged by the Relying Party. The Relying Party is required to provide the transaction ID when contacting the Mastercard customer support team. type: string example: 28eae1aa-6744-433e-879d-7da48d63e89a minLength: 36 maxLength: 36 attemptsRemaining: description: The number of attempts remaining. This field is only populated for the `FAILURE` response code. type: integer format: int32 example: 2 SourceVerificationResult: required: - verificationResult type: object properties: verificationResult: type: string description: 'Verification Results, following : DOCUMENT_VERIFIED - Document matches with the IVP registered document, DOCUMENT_NOT_VERIFIED - Document does not match with any of the IVP registered document, DOCUMENT_INVALID - Document is invalid or not electronically captured.' example: DOCUMENT_VERIFIED minLength: 16 maxLength: 21 Error: type: object properties: Source: type: string description: Source of where the error occured. example: mids ReasonCode: type: string description: Code of the error. example: USER_PROFILE_ID_NOT_FOUND Description: type: string description: The cause of the error example: The provided userProfileId does not exist Recoverable: type: boolean description: Indiciates if the error can be recovered from. example: false Details: type: string description: Contains information about the error. example: IOException Occured requestBodies: MultiDocumentDataRetrievalsRequest: content: application/json: schema: $ref: '#/components/schemas/MultiDocumentDataRetrieval' required: true UpdateIdConfirmationsRequest: content: application/json: schema: $ref: '#/components/schemas/DocumentIdConfirmation' required: true DocumentDataConfirmationsRequest: content: application/json: schema: $ref: '#/components/schemas/DocumentVerificationConfirmData' examples: DocumentDataConfirmationsUnencryptedRequest: $ref: '#/components/examples/DocumentVerificationConfirmDataExample' DocumentDataConfirmationsEncryptedRequest: $ref: '#/components/examples/EncryptedPayloadNoPDSExample' required: true UpdateIdentityAttributesRequest: content: application/json: schema: $ref: '#/components/schemas/UpdateIdentityAttributesData' examples: UpdateIdentityAttributesUnencryptedRequest: $ref: '#/components/examples/UpdateIdentityAttributesExample' UpdateIdentityAttributesEncryptedRequest: $ref: '#/components/examples/EncryptedPayloadWithPDSExample' required: true SmsOtpVerificationsRequest: content: application/json: schema: $ref: '#/components/schemas/OtpVerification' examples: SmsOtpVerificationsRequestUnencrypted: $ref: '#/components/examples/OtpVerificationsRequestExample' SmsOtpVerificationsRequestEncrypted: $ref: '#/components/examples/EncryptedPayloadWithPDSExample' required: true DocumentDataRetrievalsRequest: content: application/json: schema: $ref: '#/components/schemas/DocumentDataRetrieval' required: true EmailOtpVerificationsRequest: content: application/json: schema: $ref: '#/components/schemas/OtpVerification' examples: EmailOtpVerificationsRequestUnencrypted: $ref: '#/components/examples/OtpVerificationsRequestExample' EmailOtpVerificationsRequestEncrypted: $ref: '#/components/examples/EncryptedPayloadWithPDSExample' required: true DriversLicenseSourceVerificationRequest: content: application/json: schema: $ref: '#/components/schemas/DriversLicenseSourceVerificationRequestAttributes' examples: SourceVerDrivingLicenceExample: $ref: '#/components/examples/SourceVerDrivingLicenceExample' required: true SmsOtpVerificationRequest: content: application/json: schema: $ref: '#/components/schemas/OtpVerification_2' examples: OtpVerificationExample: $ref: '#/components/examples/OtpVerificationExample' EncryptedPayloadExample: $ref: '#/components/examples/EncryptedPayloadExample' required: true EmailOtpVerficationRequest: content: application/json: schema: $ref: '#/components/schemas/OtpVerification_2' examples: EmailVerificationExample: $ref: '#/components/examples/EmailVerificationExample' EncryptedPayloadExample: $ref: '#/components/examples/EncryptedPayloadExample' required: true MedicareCardSourceVerificationRequest: content: application/json: schema: $ref: '#/components/schemas/MedicareCardSourceVerificationRequestAttributes' required: true PassportSourceVerificationRequest: content: application/json: schema: $ref: '#/components/schemas/PassportSourceVerificationRequestAttributes' examples: SourceVerPassportExample: $ref: '#/components/examples/SourceVerPassportExample' EncryptedPayloadExample: $ref: '#/components/examples/EncryptedPayloadExample' required: true responses: UnauthorizedError: description: Unauthorized request. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: UnauthorizedExample: $ref: '#/components/examples/UnauthorizedExample' NotFoundError: description: The request didn't match an existing resource. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: NotFoundExample: $ref: '#/components/examples/NotFoundExample' UpdateIdConfirmationsResponse: description: Success. headers: X-Transaction-ID: schema: type: string description: A random 128-bit UUID represents the transaction. X-User-Identity: schema: type: string description: JWT token for session validation in subsequent API calls. OtpVerificationsResponse: description: Success. headers: X-Transaction-ID: schema: type: string description: A random 128-bit UUID represents the transaction. X-User-Identity: schema: type: string description: JWT token for session validation in subsequent API calls. content: application/json: schema: $ref: '#/components/schemas/OtpVerificationResult' examples: OtpVerificationSuccessfulExample: $ref: '#/components/examples/OtpVerificationSuccessfulExample' IncorrectOtpCodeProvidedExample: $ref: '#/components/examples/IncorrectOtpCodeProvidedExample' OtpDoesNotExistExample: $ref: '#/components/examples/OtpDoesNotExistExample' DocumentDataConfirmationsResponse: description: Success. headers: X-Transaction-ID: schema: type: string description: A random 128-bit UUID represents the transaction. X-User-Identity: schema: type: string description: JWT token for session validation in subsequent API calls. content: application/json: schema: $ref: '#/components/schemas/ConfirmedPDS' ForbiddenError: description: Consent not given. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: ForbiddenExample: $ref: '#/components/examples/ForbiddenExample' ForbiddenExampleUnauthorizedScopedFields: $ref: '#/components/examples/ForbiddenExampleUnauthorizedScopedFields' DocumentDataRetrievalsResponse: description: Success. headers: X-Transaction-ID: schema: type: string description: A random 128-bit UUID represents the transaction. X-User-Identity: schema: type: string description: JWT token for session validation in subsequent API calls. content: application/json: schema: $ref: '#/components/schemas/DocumentVerificationExtractedData' examples: DocumentRetrievalUnencryptedResponse: $ref: '#/components/examples/DocumentExtractedDataExample' DocumentRetrievalEncryptedResponse: $ref: '#/components/examples/EncryptedPayloadNoPDSExample' BadRequestError: description: Something was wrong with the request. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: UserProfileDeletedErrorExample: $ref: '#/components/examples/UserProfileDeletedErrorExample' UnauthorizedError_2: description: Unauthorized request. content: application/json: schema: $ref: '#/components/schemas/ApiError' examples: UnauthorizedExample: $ref: '#/components/examples/UnauthorizedExample' NotFoundError_2: description: Request didn't match an existing resource. content: application/json: schema: $ref: '#/components/schemas/ApiError' examples: NotFoundExample: $ref: '#/components/examples/NotFoundExample_2' SmsOtpVerificationSuccessResponses: description: Success. headers: X-Transaction-ID: $ref: '#/components/headers/X-Transaction-ID' content: application/json: schema: $ref: '#/components/schemas/OtpVerificationResult_2' examples: OtpVerificationSuccessfulExample: $ref: '#/components/examples/OtpVerificationSuccessfulExample_2' IncorrectOtpCodeProvidedExample: $ref: '#/components/examples/IncorrectOtpCodeProvidedExample_2' OtpDoesNotExistExample: $ref: '#/components/examples/OtpDoesNotExistExample_2' EncryptedPayloadExample: $ref: '#/components/examples/EncryptedPayloadExample' PassportSourceVerificationResponse: description: Success. headers: X-Transaction-ID: $ref: '#/components/headers/X-Transaction-ID' content: application/json: schema: $ref: '#/components/schemas/SourceVerificationResult' ForbiddenError_2: description: Consent not given. content: application/json: schema: $ref: '#/components/schemas/ApiError' examples: ForbiddenExample: $ref: '#/components/examples/ForbiddenExample' ForbiddenExampleUnauthorizedScopedFields: $ref: '#/components/examples/ForbiddenExampleUnauthorizedScopedFields_2' DriversLicenseSourceVerificationResponse: description: Success. headers: X-Transaction-ID: $ref: '#/components/headers/X-Transaction-ID' content: application/json: schema: $ref: '#/components/schemas/SourceVerificationResult' EmailOtpVerificationResponses: description: Success. headers: X-Transaction-ID: $ref: '#/components/headers/X-Transaction-ID' content: application/json: schema: $ref: '#/components/schemas/OtpVerificationResult_2' examples: OtpVerificationSuccessfulExample: $ref: '#/components/examples/OtpVerificationSuccessfulExample_2' IncorrectOtpCodeProvidedExample: $ref: '#/components/examples/IncorrectOtpCodeProvidedExample_2' OtpDoesNotExistExample: $ref: '#/components/examples/OtpDoesNotExistExample_2' EncryptedPayloadExample: $ref: '#/components/examples/EncryptedPayloadExample' BadRequestError_2: description: Something was wrong with the request. content: application/json: schema: $ref: '#/components/schemas/ApiError' examples: BadRequestExampleUserConsent: $ref: '#/components/examples/BadRequestExampleUserConsent' BadRequestExampleCountryCode: $ref: '#/components/examples/BadRequestExampleCountryCode' BadRequestExamplePhoneNumber: $ref: '#/components/examples/BadRequestExamplePhoneNumber' BadRequestExampleIVPConnectionTimeout: $ref: '#/components/examples/BadRequestExampleIVPConnectionTimeout' BadRequestExampleIVPSystemError: $ref: '#/components/examples/BadRequestExampleIVPSystemError' BadRequestExampleMedicareExpireDate: $ref: '#/components/examples/BadRequestExampleMedicareExpireDate' BadRequestExampleMedicareName: $ref: '#/components/examples/BadRequestExampleMedicareName' BadRequestExampleMedicareIndividualReferenceNo: $ref: '#/components/examples/BadRequestExampleMedicareIndividualReferenceNo' BadRequestExampleMedicareMedicareNumber: $ref: '#/components/examples/BadRequestExampleMedicareMedicareNumber' BadRequestExampleMedicareCountryCode: $ref: '#/components/examples/BadRequestExampleMedicareCountryCode' BadRequestExampleMedicareUserConsent: $ref: '#/components/examples/BadRequestExampleMedicareUserConsent' BadRequestExampleDocumentMismatch: $ref: '#/components/examples/BadRequestExampleDocumentMismatch' MedicareCardSourceVerificationResponse: description: Success. headers: X-Transaction-ID: $ref: '#/components/headers/X-Transaction-ID' content: application/json: schema: $ref: '#/components/schemas/MedicareCardSourceVerificationResult' examples: MedicareSuccessExample: $ref: '#/components/examples/MedicareSuccessExample' MedicareDataNotMatchedExample: $ref: '#/components/examples/MedicareDataNotMatchedExample' MedicareDocumentInvalidExample: $ref: '#/components/examples/MedicareDocumentInvalidExample' examples: UnauthorizedExample: value: Errors: Error: - Source: mids ReasonCode: UNAUTHORIZED_REQUEST Description: Unauthorized request. Recoverable: false UpdateIdentityAttributesExample: value: identityAttributes: - attributeName: LEGAL_NAME attributeValue: BALL,ELLA pds: ZGZnZGVmZ2RnZGVnZXJnZXJncmRnZXJ5aGdld3J0eWJld3J5dHdleXd5d3l3cmFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh userConsent: ACCEPT tpAuditMetadata: sessionId: be3ad617-04ad-43e1-a438-79425b6511b6 transactionGroupId: be3ad617-04ad-43e1-a438-79425b6511b6 sdkVersion: 2.3.0 OtpVerificationSuccessfulExample: value: responseCode: SUCCESS responseMessage: Verification Successful. transactionId: 9060c8ca-c5ec-11ea-87d0-0242ac130003 pds: ZGZnZGVmZ2RnZGVnZXJnZXJncmRnZXJ5aGdld3J0eWJld3J5dHdleXd5d3l3cmFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh DocumentExtractedDataExample: value: documentData: addressLine1: 36271 GrandRiver Ave addressLine2: Building no 2 addressZipCode: '48335' addressCity: Farmington addressSubdivision: MO addressCountry: USA lastName: Doe firstName: John dateOfBirth: '1996-07-10' issuingCountry: USA issuingDate: '1996-07-10' expiryDate: '1996-07-10' gender: M fathersName: John Smith mothersName: Paula Smith documentNumber: 1LViI488YkFZh8YjNlLf61BMn29cmQn documentType: passport issuingPlace: New York issuingAuthority: United States placeOfBirth: Boston issuingState: MO formattedAddress: 220 BLVD O FALLON MO rgNumber: '12345' cpf: '12345' cardNumber: C876687JK documentStatus: SUCCESS status: SUCCESS transactionId: 1ec14310-e85c-11ea-adc1-0242ac120002 OtpVerificationsRequestExample: value: code: '123456' otpId: 63d04933-02b6-4ea4-adf9-68696e675a01 countryCode: US userConsent: ACCEPT pds: ZGZnZGVmZ2RnZGVnZXJnZXJncmRnZXJ5aGdld3J0eWJld3J5dHdleXd5d3l3cmFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh sdkAuditEvents: - dateTime: '2020-01-28T13:16:01.714-05:00' softwareVersion: 1.0.0 userProfileId: df52649e-4096-456a-bca0-751ee470009f sessionId: 123ae1aa-6744-433e-879d-7da48d631234 transactionGroupId: 28eae1aa-6744-433e-879d-7da48d63e89a logRequestFlow: CoreSDK-TP logEvent: ID Enrollment logEventType: User Profile Creation osVersion: Android 5.0 deviceMake: Samsung S10 type: audit audit: privacyPolicy: 1.0.0 userBiometricConsent: 'TRUE' event: Document Scan eventType: Enrollment result: 'TRUE' eventGeneratedSource: CoreSDK owner: TP tpAuditMetadata: sessionId: be3ad617-04ad-43e1-a438-79425b6511b6 transactionGroupId: be3ad617-04ad-43e1-a438-79425b6511b6 arid: a15fa6de-b199-11eb-8529-0242ac130003 sdkVersion: 2.3.0 ForbiddenExampleUnauthorizedScopedFields: value: Errors: Error: - Source: mids ReasonCode: UNAUTHORIZED_SCOPED_FIELDS Description: 'UNAUTHORIZED_SCOPED_FIELDS: Requested scoped fields are not part of whitelisted fields.' Recoverable: false DocumentVerificationConfirmDataExample: value: sdkAuditEvents: - dateTime: '2020-01-28T13:16:01.714-05:00' softwareVersion: 1.0.0 userProfileId: df52649e-4096-456a-bca0-751ee470009f sessionId: 123ae1aa-6744-433e-879d-7da48d631234 transactionGroupId: 28eae1aa-6744-433e-879d-7da48d63e89a logRequestFlow: CoreSDK-TP logEvent: ID Enrollment logEventType: User Profile Creation osVersion: Android 5.0 deviceMake: Samsung S10 type: audit audit: privacyPolicy: 1.0.0 userBiometricConsent: 'TRUE' event: Document Scan eventType: Enrollment result: 'TRUE' eventGeneratedSource: CoreSDK owner: TP tpAuditMetadata: sessionId: be3ad617-04ad-43e1-a438-79425b6511b6 transactionGroupId: be3ad617-04ad-43e1-a438-79425b6511b6 arid: a15fa6de-b199-11eb-8529-0242ac130003 documentData: addressLine1: 36271 GrandRiver Ave addressLine2: Building no 2 addressZipCode: '48335' addressCity: Farmington addressSubdivision: MO addressCountry: USA lastName: Doe firstName: John dateOfBirth: '1996-07-10' issuingCountry: USA issuingDate: '1996-07-10' expiryDate: '1996-07-10' gender: M fathersName: John Smith mothersName: Paula Smith documentNumber: 1LViI488YkFZh8YjNlLf61BMn29cmQn documentType: passport issuingPlace: New York issuingAuthority: United States placeOfBirth: Boston issuingState: MO formattedAddress: 220 BLVD O FALLON MO rgNumber: '12345' cpf: '12345' cardNumber: C876687JK workflowId: be3ad617-04ad-43e1-a438-79425b6511b6 userProfileId: 1f52649e-4096-456a-bca0-751ee4703058 userConsent: ACCEPT countryCode: US locale: en-US fraudDetection: nuDetectMeta: behaviourData: ewogICJuZHMtcG1kIiA6ICJ7XCJmdnFcIjpcIjBONjROOVAzLVBPM1ItNDcyNi04MDBPLTNQMzM2Mzg2Tk5RT1wiLFwianZxdHJnUW5nblwiOntcInp2cXNpXCI6XCJRUTYzOTc5Ny1OUFAyLTQ0OVItOVA0MS04UTM0NDdOODU5UzdcIixcInpjdlwiOlwidmJmXCIsXCJ6b3pzXCI6XCJOY2N5clwiLFwiemZ6XCI6MTcxNzk4NjkxODQsXCJqeGVcIjo0OTcwLFwiem9vXCI6XCJOY2N5clwiLFwienVmXCI6W1wienZ6Z1wiXSxcInF2cWdtXCI6NDIwLFwidmNlXCI6XCJhcHZjLDAsNXM5bzg0MXAsMywxO2ZnLDAsYXF2Y2V2YWNoZzAsMCxhcXZjZXZhY2hnMSwwO3NzLDAsYXF2Y2V2YWNoZzA7eHEsc3A7eHEsNG47eHEsNW87eHEsNjY7eHEsMjUzO3hxLDg1O3hxLHBxO3hxLDM4O3hxLDVuO3hxLDcyO3hxLDU2O3hxLDUyO3hxLDJwO3NvLG45LGFxdmNldmFjaGcwO3NzLDEsYXF2Y2V2YWNoZzE7eHEsMTI1O3hxLDQwO3hxLG82O3hxLDRyO3hxLG87Z3IscXMsNzcsMjM0LGFxdmNlcGJhZ2VieTBcIixcInpjemlcIjoxMixcInpvelwiOlwidkN1YmFyXCIsXCJ6Y3p2aVwiOjIsXCJ6ZmZcIjo0OTk5NjMxNzQ5MTIsXCJ6dW9wZlwiOi0xLFwiem9jXCI6XCJ2Q3ViYXIgS8qAXCIsXCJ6dmh2XCI6XCJjdWJhclwiLFwiZmVcIjpcIjE3OTJrODI4XCIsXCJoblwiOlwiMi4yLjEzODA2NVwiLFwiemh5XCI6XCJIRlwifSxcImpnXCI6XCIxLmotNDUxNjgwLjEuMi56U0dVQk56cHZNeUFoQjBOR2h2ZlRqLCwuM3hCRWhxSGhKZFREb1ZYY0hjYXJOSDUzVWFFS2t2amxNVF9RQTl5dUlYcWUwbV9iX0k0WWtBWGExUExTVXJzS1R4c0NFWHB2bkJjNkpEajhNTzhGZFVXMEcyaE9BWXZDRWZ5NXRLOHdJdVN4MzBnZmszZDF0MWhnc2NJODdFTG9MVlozNi1BcjhhV0pFSjJ1Ungza3RJYW5teDktOExZZmZsMWlFbVhSd1pqQ3FaQTVVMUZ1dzYzUERKZ2lIYzFUendFVjN3ak8yZDBrbUZIWUJaZTAxd0hnajVKQThTM0R6Z3FydE9pN1d3Q0VqZldZMHFITXFGT1g1d2RBYkl5LVNmOGVkYXBaeHNxaTItc0N6ejhRN2osLFwifSIsCiAgInNpZCIgOiAiMEE2NEE5QzMtQ0IzRS00NzI2LTgwMEItM0MzMzYzODZBQURCIgp9 remoteIp: 127.0.0.1 sessionId: da3fe5be-2a8e-11eb-adc1-0242ac120002 userAgent: 'Mozilla: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.3 Mozilla/5.0 (Macintosh; Intel Mac OS X x.y; rv:42.0) Gecko/20100101 Firefox/43.4.' xForwardedFor: 203.0.113.195,70.41.3.18,150.172.238.178 requestUrl: http://tp-backend.com/api/path deviceInfo: null deviceAppId: 599F9C00-92DC-4B5C-9464-7971F01F8370 make: Samsung model: S8 visaMatched: false sdkVersion: 2.3.0 OtpDoesNotExistExample: value: responseCode: FAILURE responseMessage: The OTP request does not exist or has timed out. transactionId: 9060c8ca-c5ec-11ea-87d0-0242ac130003 EncryptedPayloadNoPDSExample: value: encryptedData: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyf UserProfileDeletedErrorExample: value: Errors: Error: - Source: mids ReasonCode: USER_PROFILE_DELETED Description: 'USER_PROFILE_DELETED: ID of the deleted profile.' Recoverable: false redirectUri: https://sample-rp-redirect-uri.com?error=server_error&state=AJahbadinvjbdvdnvljkdnvdfhsrbghrtiu4w NotFoundExample: value: Errors: Error: - Source: mids ReasonCode: USER_PROFILE_ID_NOT_FOUND Description: The provided user profile ID does not exist. Recoverable: false EncryptedPayloadWithPDSExample: value: encryptedData: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyf pds: ZGZnZGVmZ2RnZGVnZXJnZXJncmRnZXJ5aGdld3J0eWJld3J5dHdleXd5d3l3cmFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh IncorrectOtpCodeProvidedExample: value: responseCode: FAILURE responseMessage: Incorrect code provided. attemptsRemaining: '2' transactionId: 9060c8ca-c5ec-11ea-87d0-0242ac130003 ForbiddenExample: value: Errors: Error: - Source: mids ReasonCode: CONSENT_NOT_GIVEN Description: User Consent Not Given. Recoverable: false SourceVerDrivingLicenceExample: value: documentNumber: AB001234567 userConsent: ACCEPT dateOfBirth: '1990-01-01' firstName: John lastName: Smith stateCode: NSW cardNumber: '1867530950' OtpVerificationExample: value: code: '123456' otpId: 63d04933-02b6-4ea4-adf9-68696e675a01 countryCode: BR userConsent: ACCEPT MedicareDataNotMatchedExample: value: verificationResult: DOCUMENT_NOT_VERIFIED BadRequestExampleIVPConnectionTimeout: value: Errors: Error: - Source: mids ReasonCode: IVP_CONNECTION_TIMEOUT Description: Connection timeout when trying to connect with the Identity Verification Provider. Please look at 'details' for additional information. Recoverable: false Details: Received Connection TimeOut Exception MedicareDocumentInvalidExample: value: verificationResult: DOCUMENT_INVALID reason: Provided data is invalid or not electronically captured OtpVerificationSuccessfulExample_2: value: responseCode: SUCCESS responseMessage: Verification Successful transactionId: 9060c8ca-c5ec-11ea-87d0-0242ac130003 BadRequestExampleCountryCode: value: Errors: Error: - Source: mids ReasonCode: VALIDATION_ERROR Description: Invalid value US4 for 'countryCode'. Recoverable: false Details: null BadRequestExampleIVPSystemError: value: Errors: Error: - Source: mids ReasonCode: IVP_SYSTEM_ERROR Description: Received system error from the Identity Verification Provider. Please look at 'details' for additional information. Recoverable: false Details: System Error Received BadRequestExampleMedicareName: value: Errors: Error: - Source: mids ReasonCode: VALIDATION_ERROR Description: Invalid value for 'nameLine' field OR value exceeds allowed max characters. Recoverable: false Details: null BadRequestExampleUserConsent: value: Errors: Error: - Source: mids ReasonCode: VALIDATION_ERROR Description: Unexpected value 'Invalid' for enumerate field. Recoverable: false Details: null BadRequestExampleMedicareCountryCode: value: Errors: Error: - Source: mids ReasonCode: VALIDATION_ERROR Description: Invalid value for 'Country code'. Recoverable: false Details: null SourceVerPassportExample: value: documentNumber: N1234567 userConsent: ACCEPT dateOfBirth: '1990-01-01' firstName: John lastName: Smith gender: M visaMatched: true visaIssuingCountry: AUS EmailVerificationExample: value: code: '123456' otpId: 63d04933-02b6-4ea4-adf9-68696e675a01 countryCode: BR userConsent: ACCEPT ForbiddenExampleUnauthorizedScopedFields_2: value: Errors: Error: - Source: mids ReasonCode: UNAUTHORIZED_SCOPED_FIELDS Description: 'UNAUTHORIZED_SCOPED_FIELDS: Requested scoped fields are not part of whitelisted fields.' Recoverable: false Details: null BadRequestExampleDocumentMismatch: value: Errors: Error: - Source: mids ReasonCode: BAD_REQUEST Description: The document uploaded by the User does not comply to the document type/country specified by the client in the originating access-token request. Recoverable: false Details: null EncryptedPayloadExample: value: encryptedData: eyJraWQiOiIwMTQyNmRhY2JlMmRjYzA3NmQ1OWU1NDQ5N2NiNjBiMjdjZmQwMDE0ZjZmMGQyYTJiN2FmNjExNDg2NjYyMj... OtpDoesNotExistExample_2: value: responseCode: FAILURE responseMessage: The otp request does not exist or has timed out transactionId: 9060c8ca-c5ec-11ea-87d0-0242ac130003 BadRequestExampleMedicareIndividualReferenceNo: value: Errors: Error: - Source: mids ReasonCode: VALIDATION_ERROR Description: Invalid value for 'INDIVIDUAL_REFERENCE_NO'. Recoverable: false Details: null BadRequestExampleMedicareExpireDate: value: Errors: Error: - Source: mids ReasonCode: VALIDATION_ERROR Description: Invalid value for 'expiry date'. Recoverable: false Details: null BadRequestExampleMedicareUserConsent: value: Errors: Error: - Source: mids ReasonCode: VALIDATION_ERROR Description: User consent not given. Recoverable: false Details: null NotFoundExample_2: value: Errors: Error: - Source: mids ReasonCode: USER_PROFILE_ID_NOT_FOUND Description: The provided userProfileId does not exist. Recoverable: false BadRequestExampleMedicareMedicareNumber: value: Errors: Error: - Source: mids ReasonCode: VALIDATION_ERROR Description: Invalid value for 'Medicare card number'. Recoverable: false Details: null BadRequestExamplePhoneNumber: value: Errors: Error: - Source: mids ReasonCode: VALIDATION_ERROR Description: Invalid value ASD for 'phoneNumber'. Recoverable: false Details: null IncorrectOtpCodeProvidedExample_2: value: responseCode: FAILURE responseMessage: Incorrect code provided attemptsRemaining: 2 transactionId: 9060c8ca-c5ec-11ea-87d0-0242ac130003 MedicareSuccessExample: value: verificationResult: DOCUMENT_VERIFIED parameters: XEncryptedPayload: in: header name: X-Encrypted-Payload type: boolean description: 'An indicator that the request is encrypted or indicates that the client is able to receive an encrypted response. If not set, the payload will be treated as plaintext. ' example: true schema: null XUserIdentityParameter: in: header name: X-User-Identity example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c description: 'JWT token for session validation. Returned as response header in previous API calls with key X-User-Identity. ' schema: type: string IssuingCountryParameter: name: issuing_country in: path description: Country of issue for the document in the ISO 3166-1 alpha-3 format, only AUS is an acceptable value for this parameter. example: AUS required: true schema: type: string pattern: ^[A-Z]{3} EncryptedPayloadParameter: name: X-Encrypted-Payload in: header description: Whether the request payload is encrypted with the Encyption Key generated from the Developer Zone Portal. example: true required: false schema: type: boolean headers: X-Transaction-ID: schema: type: string example: 2d077b9c-3c06-44ac-b00e-d78fe8cce606 description: A random 128-bit UUID representing the transaction.