openapi: 3.0.1 info: title: 3DS 3DS actions Identity verification API description: "Protect your business and meet regulatory requirements by verifying your customer's identity.\n\n__Authentication header__\n ```\n Authorization: {your_credentials}\n ```\nReplace `{your_credentials}` with your base64-encoded Basic Auth username and password given to your by your Worldpay Implementation Manager.\n

\n\nYou **must** use the `Authorization` header for any request you send to our 3DS API.\n\n__Accept/Content-Type header__\n ```\n Content-Type: application/vnd.worldpay.verifications.customers-v3.hal+json\n Accept: application/vnd.worldpay.verifications.customers-v3.hal+json\n ```\nWe use the Accept header to identify which version of our API you are using. You must use the Accept header for any request you send to our 3DS API.\n\nWe require the Content-Type header if the request you're sending includes a request body, and if the HTTP method is a `POST` or a `PUT`.\n

\n\n\n__DNS whitelisting__ \nWhitelist the following URLs:\n* `https://try.access.worldpay.com/`\n* `https://access.worldpay.com/`\n\nPlease ensure you use DNS whitelisting, not explicit IP whitelisting." version: '3' x-metadata: category: - 3DS - SCA Exemptions business: - Enterprise catalog-list: true generated: false servers: - url: https://try.access.worldpay.com description: Test (Try) - url: https://access.worldpay.com description: Live security: - BasicAuth: [] tags: - name: Identity verification description: Enable identity verification check on a party. paths: /parties/{partyId}/identityVerification: post: tags: - Identity verification summary: Perform identity verification operationId: performIdentityVerification parameters: - name: partyId in: path description: A unique identifier for the party generated by us. This is sent in the response of your party creation call. required: true schema: type: string maxLength: 25 minLength: 25 pattern: ^par[a-zA-Z0-9-_]*0$ - name: WP-Api-Version in: header description: The API version. required: true schema: type: string format: date example: '2025-01-01' requestBody: content: application/json: schema: $ref: '#/components/schemas/IdentityVerification' examples: Perform an Identity Verification request for a company with beneficial owners (modular): $ref: '#/components/examples/Perform_IVS_Company_modular' URL with invalid value: $ref: '#/components/examples/400_Invalid_Url' required: true responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/IdentityVerificationResponse' examples: Identity Verification response for a company with beneficial owners (modular): $ref: '#/components/examples/Perform_IVS_Company_200_modular' '400': description: '' content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: Bad request: $ref: '#/components/examples/400' URL with invalid value: $ref: '#/components/examples/400_Invalid_Url' '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: Internal error occurred: $ref: '#/components/examples/500' '503': description: Service Unavailable content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: Service Unavailable: $ref: '#/components/examples/503' get: tags: - Identity verification summary: View identity verification status operationId: getIdentityVerificationStatus parameters: - name: partyId in: path description: A unique identifier for the party generated by us. This is sent in the response of your party creation call. required: true schema: type: string maxLength: 25 minLength: 25 pattern: ^par[a-zA-Z0-9-_]*0$ - name: WP-Api-Version in: header description: The API version. required: true schema: type: string format: date example: '2025-01-01' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/IdentityVerificationResponse' examples: Verify an Identity Verification status for a company with beneficial owners (modular): $ref: '#/components/examples/Get_IVS_Company_200_modular' '400': description: '' content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: URL with invalid value: $ref: '#/components/examples/400_Invalid_Url' '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: Internal error occurred: $ref: '#/components/examples/500' '503': description: Service Unavailable content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: Service Unavailable: $ref: '#/components/examples/503' components: schemas: ErrorResponseItem: type: object properties: errorName: type: string message: type: string path: type: string jsonPath: type: string queryParameter: type: string pathParameter: type: string IdentityVerificationResponse: type: object properties: errorName: type: string description: An ordinal error type that is part of the API contract. It is machine readable, but also human readable for clarity and semantic understanding of the error. example: bodyDoesNotMatchSchema message: type: string description: A human readable message giving a corrective action for the error. THIS IS NOT FOR MACHINE CONSUMPTION. validationErrors: type: array items: $ref: '#/components/schemas/ErrorResponseItem' pathParameter: type: string queryParameter: type: string jsonPath: type: string overall: $ref: '#/components/schemas/IdentityVerificationInfo' party: $ref: '#/components/schemas/PartyIdentityVerificationInfo' beneficialOwners: type: array items: $ref: '#/components/schemas/BeneficialOwnerIdentityVerificationInfo' IdentityVerificationInfo: type: object properties: identityVerificationState: type: string enum: - verified - notVerified - pending - rejected - notApplicable - started - startedAction - pendingStepUpAction - pendingManualReview - stepUpReceived readOnly: true identityVerificationMethod: type: string enum: - merchantCompliant - identityVerificationService readOnly: true identityVerificationDate: type: string format: date description: A valid date as YYYY-MM-DD example: '2033-11-22' readOnly: true url: type: string description: The link returned from Identity Verification Status (IVS) used to retrieve additional details from the user. readOnly: true message: type: string description: The message associated with link returned from Identity Verification Status (IVS). readOnly: true BeneficialOwnerIdentityVerificationInfo: type: object properties: identityVerificationState: type: string enum: - verified - notVerified - pending - rejected - notApplicable - started - startedAction - pendingStepUpAction - pendingManualReview - stepUpReceived readOnly: true identityVerificationMethod: type: string enum: - merchantCompliant - identityVerificationService readOnly: true identityVerificationDate: type: string format: date description: A valid date as YYYY-MM-DD example: '2033-11-22' readOnly: true url: type: string description: The link returned from Identity Verification Status (IVS) used to retrieve additional details from the user. readOnly: true message: type: string description: The message associated with link returned from Identity Verification Status (IVS). readOnly: true beneficialOwnerReference: type: string description: 'Your reference for this beneficial owner, must be unique within an entity. ' example: Hosaka27384910 maxLength: 64 minLength: 3 pattern: ^[A-Za-z0-9\-_ ]*$ beneficialOwnerId: type: string description: A unique identifier for the beneficial owner generated by us. readOnly: true ErrorResponse: type: object properties: errorName: type: string description: An ordinal error type that is part of the API contract. It is machine readable, but also human readable for clarity and semantic understanding of the error. example: bodyDoesNotMatchSchema message: type: string description: A human readable message giving a corrective action for the error. THIS IS NOT FOR MACHINE CONSUMPTION. validationErrors: type: array items: $ref: '#/components/schemas/ErrorResponseItem' pathParameter: type: string queryParameter: type: string jsonPath: type: string readOnly: true title: Error Response PartyIdentityVerificationInfo: type: object properties: identityVerificationState: type: string enum: - verified - notVerified - pending - rejected - notApplicable - started - startedAction - pendingStepUpAction - pendingManualReview - stepUpReceived readOnly: true identityVerificationMethod: type: string enum: - merchantCompliant - identityVerificationService readOnly: true identityVerificationDate: type: string format: date description: A valid date as YYYY-MM-DD example: '2033-11-22' readOnly: true url: type: string description: The link returned from Identity Verification Status (IVS) used to retrieve additional details from the user. readOnly: true message: type: string description: The message associated with link returned from Identity Verification Status (IVS). readOnly: true partyId: type: string description: A unique identifier for the party generated by us. readOnly: true partyReference: type: string description: 'Your reference for this party, must be unique within an entity. ' example: Hosaka27384910 maxLength: 64 minLength: 3 pattern: ^[A-Za-z0-9\-_ ]*$ IdentityVerification: type: object properties: performIdentityVerification: type: boolean writeOnly: true examples: '503': value: errorName: serviceUnavailable message: Service cannot fulfil the request even though service functions witout internal errors. Get_IVS_Company_200_modular: description: Get Identiy Verification Status on a party of a company (modular) value: overall: identityVerificationState: started identityVerificationMethod: identityVerificationService party: identityVerificationState: started partyReference: Linnea474 partyId: parWcAyq5G2-1KwvsEkFAKwz0 beneficialOwners: - identityVerificationState: started beneficialOwnerReference: Mac551 beneficialOwnerId: parAZo80iViOTdKRJi4Oq14Z0 - identityVerificationState: started beneficialOwnerReference: Thea799 beneficialOwnerId: parB5ON-IEK4olrLuHvjEDpE0 - identityVerificationState: started beneficialOwnerReference: Santino227 beneficialOwnerId: parNKRss9vllWyX1MUVOj7b-0 400_Invalid_Url: value: errorName: urlContainsInvalidValue message: The URL contains a value or values that are invalid. validationErrors: - errorName: fieldHasInvalidValue message: Party 'parDgfhD9O5lWVjWiUOo3Cdf0' was not found. jsonPath: $.partyId Perform_IVS_Company_200_modular: description: Identity Verification Status on a party of a company (modular) value: overall: identityVerificationState: started identityVerificationMethod: identityVerificationService party: identityVerificationState: started partyReference: Euna925 partyId: par1Bbf6r80Q3mEvhp_xBKNM0 beneficialOwners: - identityVerificationState: started beneficialOwnerReference: Floy829 beneficialOwnerId: parsH2dSCcczQveB-GQNx0qq0 - identityVerificationState: started beneficialOwnerReference: Christina843 beneficialOwnerId: parbQR-8sRkYASaOzOVPX5d10 - identityVerificationState: started beneficialOwnerReference: Arlo912 beneficialOwnerId: pargosUuzW0vv8HrWsCTuadb0 '400': value: errorName: bodyDoesNotMatchSchema message: There were field validation errors. The errors that occurred are within the validationErrors array. validationErrors: - errorName: fieldIsNotAllowed message: The identified field is present when it is explicitly not allowed in the request. jsonPath: $.additionalData Perform_IVS_Company_modular: value: performIdentityVerification: true '500': value: errorName: internalErrorOccurred message: An error occurred within the service (potentially due to an interaction with a downstream service). securitySchemes: BasicAuth: type: http scheme: basic