openapi: 3.0.1 info: title: 3D Secure 3DS Authentication API version: 3.43.0 description: Operations for listing and retrieving 3DS authentication records. Use these endpoints to query historical authentication results filtered by amount, currency, card, status, and more. servers: - url: https://emea.gsc.verifone.cloud/oidc/3ds-service description: EMEA Production - url: https://us.gsc.verifone.cloud/oidc/3ds-service description: Americas Production - url: https://nz.gsc.verifone.cloud/oidc/3ds-service description: New Zealand Production - url: https://cst.test-gsc.vfims.com/oidc/3ds-service description: Global Sandbox - url: https://uscst-gb.gsc.vficloud.net/oidc/3ds-service description: Americas Sandbox security: - BearerAuth: [] - BasicAuth: [] tags: - name: 3DS Authentication description: Operations for listing and retrieving 3DS authentication records. Use these endpoints to query historical authentication results filtered by amount, currency, card, status, and more. paths: /v2/3d: get: tags: - 3DS Authentication summary: List ThreeDSAuthentications description: "The API enumerates the ThreeDS Authentication objects, offering\nfiltration criteria to obtain filtered data based on specified parameters. \n\n## Filtering and Searching\n\nFilters can be used to interact with any object. Objects can be queried by appending parameters to\nthe query string of the URL.\n\nSo to get a list of all pares_status = Y in threeds authentication with EUR currency, having an amount equal to or greater than 20,\nwe would use the following URL:\n\n /v2/3d?_limit=10&amount>=212¤cy_code=EUR&authentication.pares_status=Y\n\nParameters with multiple values are also supported. So for example, to query pares_status = Y and pares_status = U,\nyou would use the following URL:\n\n /v2/3d?authentication.pares_status=Y&authentication.pares_status=U\n\nUse the following syntax to query objects based on parameters and values - in this example querying threeds authentication by the amount.\n\nQuery on one value:\n\n /v2/3d?amount=7500\n\nQuery on everything but one value:\n\n /v2/3d?amount!=7500\n\nLess than and equal to:\n\n /v2/3d?amount<=7500\n\nGreater than and equal to:\n\n /v2/3d?amount>=7500\n\nRange of values within/outside specified bounds:\n\n /v2/3d?amount<=7600&amount>=7500\n\nMultiple parameters:\n\n /v2/3d?amount=7600¤cy_code=EUR\n\nLimit the number of results:\n\n /v2/3d?_limit=50\n\nSort results in descending order:\n\n /v2/3d?_sort=-amount\n\nSort results in ascending order:\n\n /v2/3d?_sort=amount\n\n**Query operators:**\n\n| Operator | Description |\n|---|---|\n| `=` | equal |\n| `!` | not equal |\n| `<` | less than or equal to |\n| `>` | greater than or equal to |\n| `~` | pattern matching |\n| `>&<` | multiple-argument (range) search |" operationId: getV23d parameters: - name: _limit in: query description: 'The maximum number of values that can be sent in the response ( maximum: 10000 )' schema: maximum: 10000 minimum: 1 type: integer default: 2000 - name: _skip in: query description: _skip query params schema: minimum: 0 type: integer default: 0 - name: _sort in: query description: _sort query params style: form explode: true schema: type: array items: type: string enum: - _id - amount - card - created_at - currency_code - entity_id - entity_name - threeds_contract_id - transaction_id - authentication.acs_rendering_type - authentication.acs_transaction_id - authentication.acs_url - authentication.authentication_type - authentication.authorization_payload - authentication.card_brand - authentication.cardholder_info - authentication.cavv_algorithm - authentication.cavv - authentication.challenge_cancel - authentication.challenge_required - authentication.ds_transaction_id - authentication.eci_flag - authentication.enrolled - authentication.error_desc - authentication.error_no - authentication.network_score - authentication.order_id - authentication.pares_status - authentication.payload - authentication.reason_code - authentication.reason_desc - authentication.signature_verification - authentication.status_reason - authentication.threeds_version - authentication.xid - authentication.white_list_status - authentication.white_list_status_source - -_id - -amount - -card - -created_at - -currency_code - -entity_id - -threeds_contract_id - -transaction_id - -authentication.acs_rendering_type - -authentication.acs_transaction_id - -authentication.acs_url - -authentication.authentication_type - -authentication.authorization_payload - -authentication.card_brand - -authentication.cardholder_info - -authentication.cavv_algorithm - -authentication.cavv - -authentication.challenge_cancel - -authentication.challenge_required - -authentication.ds_transaction_id - -authentication.eci_flag - -authentication.enrolled - -authentication.error_desc - -authentication.error_no - -authentication.network_score - -authentication.order_id - -authentication.pares_status - -authentication.payload - -authentication.reason_code - -authentication.reason_desc - -authentication.signature_verification - -authentication.status_reason - -authentication.threeds_version - -authentication.xid - -authentication.white_list_status - -authentication.white_list_status_source - name: _id in: query description: ThreeDSAuthentication id schema: type: string - name: amount in: query description: The amount of the transaction. schema: maximum: 9007199254740991 type: number - name: card in: query description: The ID of the card that is checked for enrollment. schema: type: string - name: created_at in: query description: The time at which the authentication was created. schema: type: string format: date - name: currency_code in: query description: Alphabetical ISO 4217 currency code for the sale amount. schema: maxLength: 3 minLength: 3 type: string - name: entity_id in: query description: The ID of the entity, which this authentication belongs to. schema: type: string - name: threeds_contract_id in: query description: The ID of the threeDSContractId used. schema: type: string - name: transaction_id in: query description: To complete the transaction, the value is required to be passed on the Cardinal.Continue(). schema: type: string - name: authentication.acs_rendering_type in: query description: 'Identifies the UI Type the ACS will use to complete the challenge. NOTE: Only available for App transactions using the Cardinal Mobile SDK and is optional for an Issuer to return.' schema: type: string - name: authentication.acs_transaction_id in: query description: Unique transaction identifier assigned by the ACS to identify a single transaction. schema: type: string - name: authentication.acs_url in: query description: 'The fully qualified URL to redirect the Consumer to complete the Consumer Authentication transaction. NOTE: Available if Enrolled = Y' schema: type: string - name: authentication.authentication_type in: query description: 'Indicates the type of authentication that will be used to challenge the card holder. Possible Values: 01 - Static 02 - Dynamic 03 - OOB (Out of Band)' schema: type: string - name: authentication.authorization_payload in: query description: The Base64 encoded JSON Payload of CB specific Authorization Values returned in the Frictionless Flow. schema: pattern: ^(?:[A-Za-z0-9+\/]{2}[A-Za-z0-9+\/]{2})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$ type: string - name: authentication.card_brand in: query description: Card Brand schema: type: string - name: authentication.cardholder_info in: query description: Additional text provided by the Issuing Bank to the Cardholder during a Frictionless transaction and was not authenticated by the ACS. The Issuing Bank can optionally support this value. schema: type: string - name: authentication.cavv_algorithm in: query description: "Indicates the algorithm used to generate the CAVV value. Possible Values: \n 2 - CVV with ATN 3 - Mastercard SPA algorithm" schema: type: string - name: authentication.cavv in: query description: Cardholder Authentication Verification Value (CAVV). This value should be appended to the authorization message signifying that the transaction has been successfully authenticated. It will be encoded according to the Merchant's configuration in either Base64 encoding or Hex encoding. A Base64 encoding Merchant configuration will produce values of 28 or 32 characters. A Hex encoding Merchant configuration will produce values of 40 or 48 characters. The value when decoded will either be 20 bytes for CAVV. schema: type: string - name: authentication.challenge_cancel in: query description: "An indicator as to why the transaction was canceled. Possible Values: \n 01 - Cardholder selected Cancel 02 - Reserved for future EMVCo use (values invalid until defined by EMVCo). 03 - Transaction Timed Out—Decoupled Authentication 04 - Transaction timed out at ACS—other timeouts 05 - Transaction Timed out at ACS - First CReq not received by ACS 06 - Transaction Error 07 - Unknown 08 = Transaction Timed Out at SDK NOTE: Only present when the Consumer cancels the challenge. Decoupled authentication is not supported at this time." schema: type: string enum: - '01' - '02' - '03' - '04' - '05' - '06' - '07' - '8.0' - name: authentication.challenge_required in: query description: 'Indicates whether a challenge is required to complete authentication. For example, regional mandates. Possible Values: Y - Challenge Required N - Challenge Not Required' schema: type: string - name: authentication.ds_transaction_id in: query description: 'Unique transaction identifier assigned by the Directory Server (DS) to identify a single transaction. NOTE: Required for Mastercard Identity Check transaction in Authorization - Only available in EMV 3DS (3DS 2.0) transactions' schema: type: string - name: authentication.eci_flag in: query description: 'Electronic Commerce Indicator (ECI). The ECI value is part of the 2 data elements that indicate the transaction was processed electronically. This should be passed on the authorization transaction to the Gateway/Processor. Possible Values: 02 or 05 - Fully Authenticated Transaction 01 or 06 - Attempted Authentication Transaction 00 or 07 - Non 3D Secure Transaction Mastercard - 02, 01, 00 VISA - 05, 06, 07 AMEX - 05, 06, 07 JCB - 05, 06, 07 DINERS CLUB - 05, 06, 07 NOTE: 3DS 2.0 field' schema: type: string - name: authentication.enrolled in: query description: "Status of Authentication eligibility. \n Possible Values: \n Y - Yes, Bank is participating in 3D Secure protocol and will return the ACSUrl \n N - No, Bank is not participating in 3D Secure protocol \n U - Unavailable, The DS or ACS is not available for authentication at the time of the request \n B - Bypass, Merchant authentication rule is triggered to bypass authentication in this use case \n NOTE: If the Enrolled value is NOT Y, then the Consumer is NOT eligible for Authentication." schema: type: string - name: authentication.error_desc in: query description: 'Application error description for the associated error number(s). NOTE: Multiple error descriptions are separated by a comma.' schema: type: string - name: authentication.error_no in: query description: 'Application error number(s). A non-zero value represents the error encountered while attempting to process the message request. NOTE: Multiple error numbers are separated by a comma.' schema: type: string - name: authentication.network_score in: query description: The global score calculated by the CB Scoring platform. schema: maxLength: 2 type: string - name: authentication.order_id in: query description: 3DS server generated order identifier. Used to link multiple actions on a single order to a single identifier. Mod-10 compliant and unique BIN range to 3DS services. schema: type: string - name: authentication.pares_status in: query description: 'Transactions status result identifier. Possible Values: Y - Successful Authentication N - Failed Authentication U - Unable to Complete Authentication A - Successful Attempts Transaction C - Challenge Required for Authentication R - Authentication Rejected (Merchant must not submit for authorization) NOTE: Statuses of C and R only apply to Consumer Authentication 2.0.,' schema: type: string - name: authentication.payload in: query description: 'The encoded payment request generated by Centinel. NOTE: Available if Enrolled = Y' schema: type: string - name: authentication.reason_code in: query description: The error code indicating a problem with this transaction. schema: type: string - name: authentication.reason_desc in: query description: 'Text and additional detail about the error for this transaction. NOTE: This field concatenates the errorDescription and errorDetail from the authentication response message' schema: type: string - name: authentication.signature_verification in: query description: 'Transaction Signature status identifier. Possible Values: Y - Indicates that the signature of the PARes has been validated successfully and the message contents can be trusted. N - Indicates that the PARes could not be validated. This result could be for a variety of reasons; tampering, certificate expiration, etc., and the result should not be trusted.' schema: type: string - name: authentication.status_reason in: query description: 'Provides additional information as to why the PAResStatus has the specific value. NOTE: Required for Payment (e.g. Authentication Indicator equals 01 on Lookup Request) transactions when PAResStatus is equal to N, U, or R in the Lookup Response.' schema: type: string - name: authentication.threeds_version in: query description: "This field contains the 3DS version that was used to process the transaction. \n Possible Values: \n 1.0.2 \n 2.1.0 \n NOTE: Required for Mastercard Identity Check transactions in Authorization" schema: type: string - name: authentication.xid in: query description: 'Third Party Token that is returned from the token provider after a card number is specified on the request. NOTE: This field is returned if Tokenization is enabled in the Merchant profile setting AND the Merchant is using a third party token provider.' schema: type: string - name: encrypted_card in: query description: "Client encrypted cardholder data. The cardholder data encrypted using the Verifone provided public key. This needs to be provided in base64 encoded format. The data to encrypt is a JSON with possible tags being cardNumber, sequenceNumber, cardholderName, startMonth, startYear, expiryMonth, expiryYear, cvv. Additionally a tag called captureTime must be presenting indicating the time the card was captured in UTC in format RFC 3339, section 5.6. eg. 2019-08-24T14:15:22Z. Sample JSON to encrypt: \n \n {\n \"captureTime\": '2019-08-24T14:15:22Z',\n \"cardNumber\": '5555555555554444',\n \"expiryMonth\": 1,\n \"expiryYear\": 2025,\n \"cvv\": '123',\n } \n Note: encrypted_card is required if card or reuse_token is not provided." schema: type: string - name: public_key_alias in: query description: "The alias for the public key used to encrypt this card. \n Note: public_key_alias is required if card or reuse_token is not provided." schema: type: string - name: _id! in: query description: ThreeDSAuthentication id schema: type: string - name: amount! in: query description: The amount of the transaction. schema: maximum: 9007199254740991 type: number - name: card! in: query description: The ID of the card that is checked for enrollment. schema: type: string - name: created_at! in: query description: The time at which the authentication was created. schema: type: string format: date - name: currency_code! in: query description: Alphabetical ISO 4217 currency code for the sale amount. schema: maxLength: 3 minLength: 3 type: string - name: entity_id! in: query description: The ID of the entity, which this authentication belongs to. schema: type: string - name: threeds_contract_id! in: query description: The ID of the threeDSContractId used. schema: type: string - name: transaction_id! in: query description: To complete the transaction, the value is required to be passed on the Cardinal.Continue(). schema: type: string - name: authentication.acs_rendering_type! in: query description: 'Identifies the UI Type the ACS will use to complete the challenge. NOTE: Only available for App transactions using the Cardinal Mobile SDK and is optional for an Issuer to return.' schema: type: string - name: authentication.acs_transaction_id! in: query description: Unique transaction identifier assigned by the ACS to identify a single transaction. schema: type: string - name: authentication.acs_url! in: query description: 'The fully qualified URL to redirect the Consumer to complete the Consumer Authentication transaction. NOTE: Available if Enrolled = Y' schema: type: string - name: authentication.authentication_type! in: query description: 'Indicates the type of authentication that will be used to challenge the card holder. Possible Values: 01 - Static 02 - Dynamic 03 - OOB (Out of Band)' schema: type: string - name: authentication.authorization_payload! in: query description: The Base64 encoded JSON Payload of CB specific Authorization Values returned in the Frictionless Flow. schema: pattern: ^(?:[A-Za-z0-9+\/]{2}[A-Za-z0-9+\/]{2})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$ type: string - name: authentication.card_brand! in: query description: Card Brand schema: type: string - name: authentication.cardholder_info! in: query description: Additional text provided by the Issuing Bank to the Cardholder during a Frictionless transaction and was not authenticated by the ACS. The Issuing Bank can optionally support this value. schema: type: string - name: authentication.cavv_algorithm! in: query description: "Indicates the algorithm used to generate the CAVV value. Possible Values: \n 2 - CVV with ATN 3 - Mastercard SPA algorithm" schema: type: string - name: authentication.cavv! in: query description: Cardholder Authentication Verification Value (CAVV). This value should be appended to the authorization message signifying that the transaction has been successfully authenticated. It will be encoded according to the Merchant's configuration in either Base64 encoding or Hex encoding. A Base64 encoding Merchant configuration will produce values of 28 or 32 characters. A Hex encoding Merchant configuration will produce values of 40 or 48 characters. The value when decoded will either be 20 bytes for CAVV. schema: type: string - name: authentication.challenge_cancel! in: query description: "An indicator as to why the transaction was canceled. Possible Values: \n 01 - Cardholder selected Cancel 02 - Reserved for future EMVCo use (values invalid until defined by EMVCo). 03 - Transaction Timed Out—Decoupled Authentication 04 - Transaction timed out at ACS—other timeouts 05 - Transaction Timed out at ACS - First CReq not received by ACS 06 - Transaction Error 07 - Unknown 08 = Transaction Timed Out at SDK NOTE: Only present when the Consumer cancels the challenge. Decoupled authentication is not supported at this time." schema: type: string enum: - '01' - '02' - '03' - '04' - '05' - '06' - '07' - '8.0' - name: authentication.challenge_required! in: query description: 'Indicates whether a challenge is required to complete authentication. For example, regional mandates. Possible Values: Y - Challenge Required N - Challenge Not Required' schema: type: string - name: authentication.ds_transaction_id! in: query description: 'Unique transaction identifier assigned by the Directory Server (DS) to identify a single transaction. NOTE: Required for Mastercard Identity Check transaction in Authorization - Only available in EMV 3DS (3DS 2.0) transactions' schema: type: string - name: authentication.eci_flag! in: query description: 'Electronic Commerce Indicator (ECI). The ECI value is part of the 2 data elements that indicate the transaction was processed electronically. This should be passed on the authorization transaction to the Gateway/Processor. Possible Values: 02 or 05 - Fully Authenticated Transaction 01 or 06 - Attempted Authentication Transaction 00 or 07 - Non 3D Secure Transaction Mastercard - 02, 01, 00 VISA - 05, 06, 07 AMEX - 05, 06, 07 JCB - 05, 06, 07 DINERS CLUB - 05, 06, 07 NOTE: 3DS 2.0 field' schema: type: string - name: authentication.enrolled! in: query description: "Status of Authentication eligibility. \n Possible Values: \n Y - Yes, Bank is participating in 3D Secure protocol and will return the ACSUrl \n N - No, Bank is not participating in 3D Secure protocol \n U - Unavailable, The DS or ACS is not available for authentication at the time of the request \n B - Bypass, Merchant authentication rule is triggered to bypass authentication in this use case \n NOTE: If the Enrolled value is NOT Y, then the Consumer is NOT eligible for Authentication." schema: type: string - name: authentication.error_desc! in: query description: 'Application error description for the associated error number(s). NOTE: Multiple error descriptions are separated by a comma.' schema: type: string - name: authentication.error_no! in: query description: 'Application error number(s). A non-zero value represents the error encountered while attempting to process the message request. NOTE: Multiple error numbers are separated by a comma.' schema: type: string - name: authentication.network_score! in: query description: The global score calculated by the CB Scoring platform. schema: maxLength: 2 type: string - name: authentication.order_id! in: query description: 3DS server generated order identifier. Used to link multiple actions on a single order to a single identifier. Mod-10 compliant and unique BIN range to 3DS services. schema: type: string - name: authentication.pares_status! in: query description: 'Transactions status result identifier. Possible Values: Y - Successful Authentication N - Failed Authentication U - Unable to Complete Authentication A - Successful Attempts Transaction C - Challenge Required for Authentication R - Authentication Rejected (Merchant must not submit for authorization) NOTE: Statuses of C and R only apply to Consumer Authentication 2.0.,' schema: type: string - name: authentication.payload! in: query description: 'The encoded payment request generated by Centinel. NOTE: Available if Enrolled = Y' schema: type: string - name: authentication.reason_code! in: query description: The error code indicating a problem with this transaction. schema: type: string - name: authentication.reason_desc! in: query description: 'Text and additional detail about the error for this transaction. NOTE: This field concatenates the errorDescription and errorDetail from the authentication response message' schema: type: string - name: authentication.signature_verification! in: query description: 'Transaction Signature status identifier. Possible Values: Y - Indicates that the signature of the PARes has been validated successfully and the message contents can be trusted. N - Indicates that the PARes could not be validated. This result could be for a variety of reasons; tampering, certificate expiration, etc., and the result should not be trusted.' schema: type: string - name: authentication.status_reason! in: query description: 'Provides additional information as to why the PAResStatus has the specific value. NOTE: Required for Payment (e.g. Authentication Indicator equals 01 on Lookup Request) transactions when PAResStatus is equal to N, U, or R in the Lookup Response.' schema: type: string - name: authentication.threeds_version! in: query description: "This field contains the 3DS version that was used to process the transaction. \n Possible Values: \n 1.0.2 \n 2.1.0 \n NOTE: Required for Mastercard Identity Check transactions in Authorization" schema: type: string - name: authentication.xid! in: query description: 'Third Party Token that is returned from the token provider after a card number is specified on the request. NOTE: This field is returned if Tokenization is enabled in the Merchant profile setting AND the Merchant is using a third party token provider.' schema: type: string - name: encrypted_card! in: query description: "Client encrypted cardholder data. The cardholder data encrypted using the Verifone provided public key. This needs to be provided in base64 encoded format. The data to encrypt is a JSON with possible tags being cardNumber, sequenceNumber, cardholderName, startMonth, startYear, expiryMonth, expiryYear, cvv. Additionally a tag called captureTime must be presenting indicating the time the card was captured in UTC in format RFC 3339, section 5.6. eg. 2019-08-24T14:15:22Z. Sample JSON to encrypt: \n \n {\n \"captureTime\": '2019-08-24T14:15:22Z',\n \"cardNumber\": '5555555555554444',\n \"expiryMonth\": 1,\n \"expiryYear\": 2025,\n \"cvv\": '123',\n } \n Note: encrypted_card is required if card or reuse_token is not provided." schema: type: string - name: public_key_alias! in: query description: "The alias for the public key used to encrypt this card. \n Note: public_key_alias is required if card or reuse_token is not provided." schema: type: string - name: _id~ in: query description: ThreeDSAuthentication id schema: type: string - name: card~ in: query description: The ID of the card that is checked for enrollment. schema: type: string - name: currency_code~ in: query description: Alphabetical ISO 4217 currency code for the sale amount. schema: maxLength: 3 minLength: 3 type: string - name: entity_id~ in: query description: The ID of the entity, which this authentication belongs to. schema: type: string - name: threeds_contract_id~ in: query description: The ID of the threeDSContractId used. schema: type: string - name: transaction_id~ in: query description: To complete the transaction, the value is required to be passed on the Cardinal.Continue(). schema: type: string - name: authentication.acs_rendering_type~ in: query description: 'Identifies the UI Type the ACS will use to complete the challenge. NOTE: Only available for App transactions using the Cardinal Mobile SDK and is optional for an Issuer to return.' schema: type: string - name: authentication.acs_transaction_id~ in: query description: Unique transaction identifier assigned by the ACS to identify a single transaction. schema: type: string - name: authentication.acs_url~ in: query description: 'The fully qualified URL to redirect the Consumer to complete the Consumer Authentication transaction. NOTE: Available if Enrolled = Y' schema: type: string - name: authentication.authentication_type~ in: query description: 'Indicates the type of authentication that will be used to challenge the card holder. Possible Values: 01 - Static 02 - Dynamic 03 - OOB (Out of Band)' schema: type: string - name: authentication.authorization_payload~ in: query description: The Base64 encoded JSON Payload of CB specific Authorization Values returned in the Frictionless Flow. schema: pattern: ^(?:[A-Za-z0-9+\/]{2}[A-Za-z0-9+\/]{2})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$ type: string - name: authentication.card_brand~ in: query description: Card Brand schema: type: string - name: authentication.cardholder_info~ in: query description: Additional text provided by the Issuing Bank to the Cardholder during a Frictionless transaction and was not authenticated by the ACS. The Issuing Bank can optionally support this value. schema: type: string - name: authentication.cavv_algorithm~ in: query description: "Indicates the algorithm used to generate the CAVV value. Possible Values: \n 2 - CVV with ATN 3 - Mastercard SPA algorithm" schema: type: string - name: authentication.cavv~ in: query description: Cardholder Authentication Verification Value (CAVV). This value should be appended to the authorization message signifying that the transaction has been successfully authenticated. It will be encoded according to the Merchant's configuration in either Base64 encoding or Hex encoding. A Base64 encoding Merchant configuration will produce values of 28 or 32 characters. A Hex encoding Merchant configuration will produce values of 40 or 48 characters. The value when decoded will either be 20 bytes for CAVV. schema: type: string - name: authentication.challenge_cancel~ in: query description: "An indicator as to why the transaction was canceled. Possible Values: \n 01 - Cardholder selected Cancel 02 - Reserved for future EMVCo use (values invalid until defined by EMVCo). 03 - Transaction Timed Out—Decoupled Authentication 04 - Transaction timed out at ACS—other timeouts 05 - Transaction Timed out at ACS - First CReq not received by ACS 06 - Transaction Error 07 - Unknown 08 = Transaction Timed Out at SDK NOTE: Only present when the Consumer cancels the challenge. Decoupled authentication is not supported at this time." schema: type: string enum: - '01' - '02' - '03' - '04' - '05' - '06' - '07' - '8.0' - name: authentication.challenge_required~ in: query description: 'Indicates whether a challenge is required to complete authentication. For example, regional mandates. Possible Values: Y - Challenge Required N - Challenge Not Required' schema: type: string - name: authentication.ds_transaction_id~ in: query description: 'Unique transaction identifier assigned by the Directory Server (DS) to identify a single transaction. NOTE: Required for Mastercard Identity Check transaction in Authorization - Only available in EMV 3DS (3DS 2.0) transactions' schema: type: string - name: authentication.eci_flag~ in: query description: 'Electronic Commerce Indicator (ECI). The ECI value is part of the 2 data elements that indicate the transaction was processed electronically. This should be passed on the authorization transaction to the Gateway/Processor. Possible Values: 02 or 05 - Fully Authenticated Transaction 01 or 06 - Attempted Authentication Transaction 00 or 07 - Non 3D Secure Transaction Mastercard - 02, 01, 00 VISA - 05, 06, 07 AMEX - 05, 06, 07 JCB - 05, 06, 07 DINERS CLUB - 05, 06, 07 NOTE: 3DS 2.0 field' schema: type: string - name: authentication.enrolled~ in: query description: "Status of Authentication eligibility. \n Possible Values: \n Y - Yes, Bank is participating in 3D Secure protocol and will return the ACSUrl \n N - No, Bank is not participating in 3D Secure protocol \n U - Unavailable, The DS or ACS is not available for authentication at the time of the request \n B - Bypass, Merchant authentication rule is triggered to bypass authentication in this use case \n NOTE: If the Enrolled value is NOT Y, then the Consumer is NOT eligible for Authentication." schema: type: string - name: authentication.error_desc~ in: query description: 'Application error description for the associated error number(s). NOTE: Multiple error descriptions are separated by a comma.' schema: type: string - name: authentication.error_no~ in: query description: 'Application error number(s). A non-zero value represents the error encountered while attempting to process the message request. NOTE: Multiple error numbers are separated by a comma.' schema: type: string - name: authentication.network_score~ in: query description: The global score calculated by the CB Scoring platform.. schema: maxLength: 2 type: string - name: authentication.order_id~ in: query description: 3DS server generated order identifier. Used to link multiple actions on a single order to a single identifier. Mod-10 compliant and unique BIN range to 3DS services. schema: type: string - name: authentication.pares_status~ in: query description: 'Transactions status result identifier. Possible Values: Y - Successful Authentication N - Failed Authentication U - Unable to Complete Authentication A - Successful Attempts Transaction C - Challenge Required for Authentication R - Authentication Rejected (Merchant must not submit for authorization) NOTE: Statuses of C and R only apply to Consumer Authentication 2.0.,' schema: type: string - name: authentication.payload~ in: query description: 'The encoded payment request generated by Centinel. NOTE: Available if Enrolled = Y' schema: type: string - name: authentication.reason_code~ in: query description: The error code indicating a problem with this transaction. schema: type: string - name: authentication.reason_desc~ in: query description: 'Text and additional detail about the error for this transaction. NOTE: This field concatenates the errorDescription and errorDetail from the authentication response message' schema: type: string - name: authentication.signature_verification~ in: query description: 'Transaction Signature status identifier. Possible Values: Y - Indicates that the signature of the PARes has been validated successfully and the message contents can be trusted. N - Indicates that the PARes could not be validated. This result could be for a variety of reasons; tampering, certificate expiration, etc., and the result should not be trusted.' schema: type: string - name: authentication.status_reason~ in: query description: 'Provides additional information as to why the PAResStatus has the specific value. NOTE: Required for Payment (e.g. Authentication Indicator equals 01 on Lookup Request) transactions when PAResStatus is equal to N, U, or R in the Lookup Response.' schema: type: string - name: authentication.threeds_version~ in: query description: "This field contains the 3DS version that was used to process the transaction. \n Possible Values: \n 1.0.2 \n 2.1.0 \n NOTE: Required for Mastercard Identity Check transactions in Authorization" schema: type: string - name: authentication.xid~ in: query description: 'Third Party Token that is returned from the token provider after a card number is specified on the request. NOTE: This field is returned if Tokenization is enabled in the Merchant profile setting AND the Merchant is using a third party token provider.' schema: type: string - name: encrypted_card~ in: query description: "Client encrypted cardholder data. The cardholder data encrypted using the Verifone provided public key. This needs to be provided in base64 encoded format. The data to encrypt is a JSON with possible tags being cardNumber, sequenceNumber, cardholderName, startMonth, startYear, expiryMonth, expiryYear, cvv. Additionally a tag called captureTime must be presenting indicating the time the card was captured in UTC in format RFC 3339, section 5.6. eg. 2019-08-24T14:15:22Z. Sample JSON to encrypt: \n \n {\n \"captureTime\": '2019-08-24T14:15:22Z',\n \"cardNumber\": '5555555555554444',\n \"expiryMonth\": 1,\n \"expiryYear\": 2025,\n \"cvv\": '123',\n } \n Note: encrypted_card is required if card or reuse_token is not provided." schema: type: string - name: public_key_alias~ in: query description: "The alias for the public key used to encrypt this card. \n Note: public_key_alias is required if card or reuse_token is not provided." schema: type: string - name: amount> in: query description: The amount of the transaction. schema: maximum: 9007199254740991 type: number - name: created_at> in: query description: The time at which the authentication was created. schema: type: string format: date - name: amount< in: query description: The amount of the transaction. schema: maximum: 9007199254740991 type: number - name: created_at< in: query description: The time at which the authentication was created. schema: type: string format: date responses: '200': description: Successful content: application/json: schema: $ref: '#/components/schemas/ThreeDSAuthenticationList' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '504': description: Gateway Time-out content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' components: schemas: ThreeDSAuthenticationList: type: array items: $ref: '#/components/schemas/ThreeDSAuthentication' ErrorDetails: type: object ThreeDSAuthentication: type: object properties: _id: type: string description: ThreeDSAuthentication id amount: maximum: 9007199254740991 type: number description: The amount of the transaction. threeds_contract_id: type: string description: The ID of the threeDSContractId used. authentication: $ref: '#/components/schemas/AuthenticationResult' card: type: string description: The ID of the card that is checked for enrollment. currency_code: maxLength: 3 minLength: 3 type: string description: Alphabetical ISO 4217 currency code for the sale amount. created_at: type: string description: The time at which the authentication was created. format: date entity_id: type: string description: The ID of the entity, which this authentication belongs to. transaction_id: type: string description: To complete the transaction, the value is required to be passed on the Cardinal.Continue(). ErrorResponse: required: - code - message type: object properties: code: type: number description: A 3-digit code which uniquely identify an error. details: $ref: '#/components/schemas/ErrorDetails' message: type: string description: A description of the error. timestamp: type: number description: Error timestamp AuthenticationResult: type: object properties: threeds_version: type: string description: "This field contains the 3DS version that was used to process the transaction. \n Possible Values: \n 1.0.2 \n 2.1.0 \n NOTE: Required for Mastercard Identity Check transactions in Authorization" enrolled: type: string description: "Status of Authentication eligibility. \n Possible Values: \n Y - Yes, Bank is participating in 3D Secure protocol and will return the ACSUrl \n N - No, Bank is not participating in 3D Secure protocol \n U - Unavailable, The DS or ACS is not available for authentication at the time of the request \n B - Bypass, Merchant authentication rule is triggered to bypass authentication in this use case \n NOTE: If the Enrolled value is NOT Y, then the Consumer is NOT eligible for Authentication." error_desc: type: string description: 'Application error description for the associated error number(s). NOTE: Multiple error descriptions are separated by a comma.' error_no: type: string description: 'Application error number(s). A non-zero value represents the error encountered while attempting to process the message request. NOTE: Multiple error numbers are separated by a comma.' order_id: type: string description: 3DS server generated order identifier. Used to link multiple actions on a single order to a single identifier. Mod-10 compliant and unique BIN range to 3DS services. eci_flag: type: string description: 'Electronic Commerce Indicator (ECI). The ECI value is part of the 2 data elements that indicate the transaction was processed electronically. This should be passed on the authorization transaction to the Gateway/Processor. Possible Values: 02 or 05 - Fully Authenticated Transaction 01 or 06 - Attempted Authentication Transaction 00 or 07 - Non 3D Secure Transaction Mastercard - 02, 01, 00 VISA - 05, 06, 07 AMEX - 05, 06, 07 JCB - 05, 06, 07 DINERS CLUB - 05, 06, 07 NOTE: 3DS 2.0 field' signature_verification: type: string description: 'Transaction Signature status identifier. Possible Values: Y - Indicates that the signature of the PARes has been validated successfully and the message contents can be trusted. N - Indicates that the PARes could not be validated. This result could be for a variety of reasons; tampering, certificate expiration, etc., and the result should not be trusted.' ds_transaction_id: type: string description: 'Unique transaction identifier assigned by the Directory Server (DS) to identify a single transaction. NOTE: Required for Mastercard Identity Check transaction in Authorization - Only available in EMV 3DS (3DS 2.0) transactions' acs_url: type: string description: 'The fully qualified URL to redirect the Consumer to complete the Consumer Authentication transaction. NOTE: Available if Enrolled = Y' card_brand: type: string description: Card Brand network_score: maxLength: 2 type: string description: The global score calculated by the CB Scoring platform. challenge_cancel: type: string description: "An indicator as to why the transaction was canceled. Possible Values: \n 01 - Cardholder selected Cancel 02 - Reserved for future EMVCo use (values invalid until defined by EMVCo). 03 - Transaction Timed Out—Decoupled Authentication 04 - Transaction timed out at ACS—other timeouts 05 - Transaction Timed out at ACS - First CReq not received by ACS 06 - Transaction Error 07 - Unknown 08 = Transaction Timed Out at SDK NOTE: Only present when the Consumer cancels the challenge. Decoupled authentication is not supported at this time." enum: - '01' - '02' - '03' - '04' - '05' - '06' - '07' - '8.0' authorization_payload: pattern: ^(?:[A-Za-z0-9+\/]{2}[A-Za-z0-9+\/]{2})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$ type: string description: The Base64 encoded JSON Payload of CB specific Authorization Values returned in the Frictionless Flow. cavv: type: string description: Cardholder Authentication Verification Value (CAVV). This value should be appended to the authorization message signifying that the transaction has been successfully authenticated. It will be encoded according to the Merchant's configuration in either Base64 encoding or Hex encoding. A Base64 encoding Merchant configuration will produce values of 28 or 32 characters. A Hex encoding Merchant configuration will produce values of 40 or 48 characters. The value when decoded will either be 20 bytes for CAVV. cavv_algorithm: type: string description: "Indicates the algorithm used to generate the CAVV value. Possible Values: \n 2 - CVV with ATN 3 - Mastercard SPA algorithm" pares_status: type: string description: 'Transactions status result identifier. Possible Values: Y - Successful Authentication N - Failed Authentication U - Unable to Complete Authentication A - Successful Attempts Transaction C - Challenge Required for Authentication R - Authentication Rejected (Merchant must not submit for authorization) NOTE: Statuses of C and R only apply to Consumer Authentication 2.0.,' payload: type: string description: 'The encoded payment request generated by Centinel. NOTE: Available if Enrolled = Y.' xid: type: string description: 'Third Party Token that is returned from the token provider after a card number is specified on the request. NOTE: This field is returned if Tokenization is enabled in the Merchant profile setting AND the Merchant is using a third party token provider.' reason_code: type: string description: The error code indicating a problem with this transaction. reason_desc: type: string description: 'Text and additional detail about the error for this transaction. NOTE: This field concatenates the errorDescription and errorDetail from the authentication response message.' cardholder_info: type: string description: Additional text provided by the Issuing Bank to the Cardholder during a Frictionless transaction and was not authenticated by the ACS. The Issuing Bank can optionally support this value. acs_rendering_type: type: string description: 'Identifies the UI Type the ACS will use to complete the challenge. NOTE: Only available for App transactions using the Cardinal Mobile SDK and is optional for an Issuer to return.' acs_transaction_id: type: string description: Unique transaction identifier assigned by the ACS to identify a single transaction. authentication_type: type: string description: 'Indicates the type of authentication that will be used to challenge the card holder. Possible Values: 01 - Static 02 - Dynamic 03 - OOB (Out of Band)' challenge_required: type: string description: 'Indicates whether a challenge is required to complete authentication. For example, regional mandates. Possible Values: Y - Challenge Required N - Challenge Not Required' status_reason: type: string description: 'Provides additional information as to why the PAResStatus has the specific value. NOTE: Required for Payment (e.g. Authentication Indicator equals 01 on Lookup Request) transactions when PAResStatus is equal to N, U, or R in the Lookup Response' securitySchemes: BearerAuth: type: http scheme: bearer bearerFormat: JWT description: 'JWT Bearer token. Pass as: `Authorization: Bearer `. The JWT must be signed with your Verifone-provisioned private key and must include `entity_id`, `sub` (user_id), and `roles` claims.' BasicAuth: type: http scheme: basic description: 'HTTP Basic authentication. Pass base64-encoded `username:password` as: `Authorization: Basic `.'