Evervault 3D Secure API

3D Secure is a security protocol designed to prevent fraud in online card transactions. It adds an additional layer of authentication during the payment process.

OpenAPI Specification

evervault-3d-secure-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Evervault 3D Secure API
  version: 0.0.1
  description: The Evervault API allows developers to interact programmatically with their Evervault apps using HTTP requests.
  contact:
    email: support@evervault.com
    name: Evervault Support Team
    url: https://evervault.com
servers:
- url: https://api.evervault.com
  description: The Evervault API server
tags:
- name: 3D Secure
  description: '3D Secure is a security protocol designed to prevent fraud in online card transactions. It adds an additional layer of authentication during the payment process.

    '
paths:
  /payments/3ds-sessions:
    post:
      x-section: Payments
      x-group: 3D Secure
      summary: Create a 3DS Session
      description: 'Creates a 3DS Session to initiate the 3DS Authentication process. The session ID must then be passed to our client-side SDK to complete the authentication process. [Learn more](/sdks/javascript#ui.threedsecure())

        '
      operationId: createThreeDSSession
      tags:
      - 3D Secure
      security:
      - ApiKey:
        - threeDSSession:create
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                merchant:
                  description: The merchant details. Either an inline merchant object or the unique identifier of a Merchant created with the [Merchants API](/api#merchants).
                  oneOf:
                  - type: object
                    description: An inline merchant object.
                    properties:
                      name:
                        type: string
                        description: The name of the merchant.
                        example: Ollivanders Wand Shop
                      website:
                        type: string
                        description: The website of the merchant.
                        example: https://www.ollivanders.co.uk
                      categoryCode:
                        type: string
                        description: The category code of the merchant.
                        example: '5945'
                      country:
                        type: string
                        format: iso-3166-1-alpha-2
                        description: The country code of the merchant.
                        example: ie
                    required:
                    - name
                    - website
                    - categoryCode
                    - country
                  - type: string
                    description: The unique identifier of a Merchant created with the [Merchants API](/api#merchants).
                    example: merchant_eead1d640d7c
                card:
                  description: The card details. Either an inline card object or the unique identifier of a Card created with the [Cards API](/api#cards).
                  oneOf:
                  - type: object
                    description: An inline card object.
                    properties:
                      number:
                        type: string
                        description: The card number. Needs to be an Evervault-encrypted card number or a plaintext card number.
                        example: '4242424242424242'
                      expiry:
                        $ref: '#/components/schemas/CardExpiry'
                    required:
                    - number
                    - expiry
                  - type: string
                    description: The unique identifier of a Card created with the [Cards API](/api#cards).
                    example: card_eead1d640d7c
                acquirer:
                  description: 'The acquirer details to use for the 3DS session. Either an inline acquirer object or the unique identifier of an acquirer created with the [Acquirers API](/api#acquirers). If omitted, Evervault resolves the default acquirer configuration for the card''s network.

                    '
                  oneOf:
                  - $ref: '#/components/schemas/Acquirer'
                  - type: string
                    description: The unique identifier of an acquirer created with the [Acquirers API](/api#acquirers).
                    example: acquirer_adk3kdljc3
                customer:
                  type: object
                  description: The details of the customer who initiated the transaction.
                  properties:
                    name:
                      type: string
                      description: The name of the customer.
                      pattern: ^[a-zA-Z0-9 !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~]{2,45}$
                      example: Seamus Finnigan
                    phone:
                      type: array
                      description: The phone number of the customer.
                      items:
                        type: object
                        properties:
                          type:
                            type: string
                            description: The type of phone number.
                            enum:
                            - mobile
                            - home
                            - work
                            example: mobile
                          countryCode:
                            type: string
                            description: The numerical country calling code of the phone number.
                            example: '353'
                          number:
                            type: string
                            description: The phone number of the customer.
                            example: '873451276'
                        required:
                        - type
                        - countryCode
                        - number
                    email:
                      type: string
                      format: email
                      description: The email address of the customer.
                      example: seamus@hogwarts.edu
                    shipping:
                      type: object
                      description: The shipping details of the customer.
                      properties:
                        address:
                          description: The shipping address.
                          $ref: '#/components/schemas/Address'
                    billing:
                      type: object
                      description: The billing details of the customer.
                      properties:
                        address:
                          $ref: '#/components/schemas/Address'
                        taxIdentifier:
                          type: string
                          description: The tax identifier of the cardholder.
                          example: IE123456789
                payment:
                  type: object
                  description: The payment details of the 3D Secure Authentication. This field is mandatory for transactions involving payment authentications but not required for non-payment authentications.
                  oneOf:
                  - $ref: '#/components/schemas/PaymentOneOff'
                  - $ref: '#/components/schemas/PaymentInstallment'
                  - $ref: '#/components/schemas/PaymentRecurring'
                preferredVersions:
                  type: array
                  description: 'A prioritized list of preferred 3D Secure versions. If the first version is not supported, the next version in the list is attempted. If no preferred version is provided, the most optimal version is selected. If none of the specified versions are supported by the issuer, the session fails.

                    '
                  items:
                    type: string
                    enum:
                    - 2.2.0
                challenge:
                  $ref: '#/components/schemas/ThreeDSChallenge'
                initiator:
                  $ref: '#/components/schemas/ThreeDSInitiator'
              required:
              - card
              - merchant
            examples:
              SimpleExample:
                value:
                  merchant:
                    name: Ollivanders Wand Shop
                    website: https://www.ollivanders.co.uk
                    categoryCode: '5945'
                    country: gb
                  card:
                    number: '4242424242424242'
                    expiry:
                      month: 09
                      year: '26'
                  payment:
                    type: one-off
                    amount: 1000
                    currency: eur
      responses:
        '201':
          description: Returns a 3DS Session object.
          x-content: 'Returns the [3DS Session object](#the-3ds-session-object) that was created.

            '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ThreeDSSession'
              examples:
                ActionRequired:
                  summary: Action Required
                  value:
                    id: tds_57aa862f8bf7
                    merchant:
                      name: Ollivanders Wand Shop
                      website: https://www.ollivanders.co.uk
                      categoryCode: '5945'
                      country: gb
                    card:
                      lastFour: '4242'
                      expiry:
                        month: 09
                        year: '26'
                      brand: visa
                      funding: debit
                      segment: consumer
                      country: gb
                      currency: gbp
                    initiator:
                      type: customer
                    challenge:
                      preference: no-preference
                      reason: null
                    acquirer:
                      bin: '567834'
                      merchantIdentifier: '530249576123943'
                      country: gb
                    payment:
                      type: one-off
                      amount: 1000
                      currency: eur
                    version: 2.2.0
                    status: action-required
                    nextAction:
                      type: use-sdk
                    ares:
                      transStatus:
                        value: C
                        detail: Challenge Required; Additional authentication is required using the CReq/CRes
                      transStatusReason: null
                    cres: null
                    rreq: null
                    accessControlServer:
                      transactionIdentifier: 0f651348-c519-4cfb-b349-0b302af9861f
                      referenceNumber: 3DS_LOA_ACS_STIN_020200_00417
                    directoryServer:
                      transactionIdentifier: 71c5d726-5d4b-426c-9d7d-131970f41c5c
                      referenceNumber: 3DS_LOA_DIS_VISA_020200_00828
                      network: visa
                    threeDSServer:
                      transactionIdentifier: a623edc1-54bc-455d-9dea-c909783a37c3
                    createdAt: 1692972623233
                    updatedAt: 1692972623768
                Successful:
                  summary: Successful
                  value:
                    id: tds_57aa862f8bf7
                    merchant:
                      name: Ollivanders Wand Shop
                      website: https://www.ollivanders.co.uk
                      categoryCode: '5945'
                      country: gb
                    card:
                      lastFour: '4242'
                      expiry:
                        month: 09
                        year: '26'
                      brand: visa
                      funding: debit
                      segment: consumer
                      country: gb
                      currency: gbp
                    initiator:
                      type: customer
                    challenge:
                      preference: no-preference
                      reason: null
                    acquirer:
                      bin: '567834'
                      merchantIdentifier: '530249576123943'
                      country: gb
                    payment:
                      type: one-off
                      amount: 1000
                      currency: eur
                    accessControlServer:
                      transactionIdentifier: d351441b-f9e6-46e3-a726-9fc4f39bbaaa
                      referenceNumber: 3DS_LOA_ACS_STIN_020200_00417
                    directoryServer:
                      transactionIdentifier: 18030e14-fafa-462e-bfc0-da733196e808
                      referenceNumber: 3DS_LOA_DIS_VISA_020200_00828
                      network: visa
                    threeDSServer:
                      transactionIdentifier: a623edc1-54bc-455d-9dea-c909783a37c3
                    version: 2.2.0
                    status: success
                    authentication:
                      flow: frictionless
                    cryptogram: MTIzNDU2Nzg5MDA5ODc2NTQzMjE=
                    eci:
                      value: '05'
                      descriptor: fully-authenticated
                      liabilityShift: true
                    ares:
                      transStatus:
                        value: Y
                        detail: Authentication/Account Verification Successful
                      transStatusReason: null
                    cres: null
                    rreq: null
                    createdAt: 1692972623233
                    updatedAt: 1692972623768
                Failure:
                  summary: Failed
                  value:
                    id: tds_57aa862f8bf7
                    merchant:
                      name: Ollivanders Wand Shop
                      website: https://www.ollivanders.co.uk
                      categoryCode: '5945'
                      country: gb
                    card:
                      lastFour: '4242'
                      expiry:
                        month: 09
                        year: '26'
                      brand: visa
                      funding: debit
                      segment: consumer
                      country: gb
                      currency: gbp
                    initiator:
                      type: customer
                    challenge:
                      preference: no-preference
                      reason: null
                    acquirer:
                      bin: '567834'
                      merchantIdentifier: '530249576123943'
                      country: gb
                    payment:
                      type: one-off
                      amount: 1000
                      currency: eur
                    version: 2.2.0
                    status: failure
                    failureReason: card-not-enrolled
                    ares:
                      transStatus:
                        value: N
                        detail: Not Authenticated/Account Not Verified; Transaction denied
                      transStatusReason:
                        value: '13'
                        detail: Cardholder not enrolled in service
                    cres: null
                    rreq: null
                    accessControlServer:
                      transactionIdentifier: 0f651348-c519-4cfb-b349-0b302af9861f
                      referenceNumber: 3DS_LOA_ACS_STIN_020200_00417
                    directoryServer:
                      transactionIdentifier: 71c5d726-5d4b-426c-9d7d-131970f41c5c
                      referenceNumber: 3DS_LOA_DIS_VISA_020200_00828
                      network: visa
                    threeDSServer:
                      transactionIdentifier: a623edc1-54bc-455d-9dea-c909783a37c3
                    createdAt: 1692972623233
                    updatedAt: 1692972623768
        '400':
          description: 'The request was invalid or cannot be otherwise served.

            '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                ShortNameRequired:
                  summary: Short Name Required
                  value:
                    code: payments/3ds-sessions/short-name-required
                    title: Short Name Required
                    detail: Merchant merchant_eead1d640d7c's name is 50 characters, which exceeds the 3DS 40-character limit. Set a `shortName` on the merchant to use it for 3DS sessions.
  /payments/3ds-sessions/{3ds_session_id}:
    get:
      summary: Retrieve a 3DS Session
      description: 'Retrieve a 3DS Session.

        '
      operationId: retrieveThreeDSSession
      tags:
      - 3D Secure
      security:
      - ApiKey:
        - threeDSSession:read
      parameters:
      - name: 3ds_session_id
        in: path
        description: The id of the session
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Returns a 3DS Session object.
          x-content: 'Returns the [3DS Session object](#the-3ds-session-object).

            '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ThreeDSSession'
              examples:
                ActionRequired:
                  summary: Action Required
                  value:
                    id: tds_57aa862f8bf7
                    merchant:
                      name: Ollivanders Wand Shop
                      website: https://www.ollivanders.co.uk
                      categoryCode: '5945'
                      country: gb
                    card:
                      lastFour: '4242'
                      expiry:
                        month: 09
                        year: '26'
                      brand: visa
                      funding: debit
                      segment: consumer
                      country: gb
                      currency: gbp
                    initiator:
                      type: customer
                    challenge:
                      preference: no-preference
                      reason: null
                    acquirer:
                      bin: '567834'
                      merchantIdentifier: '530249576123943'
                      country: gb
                    payment:
                      type: one-off
                      amount: 1000
                      currency: eur
                    version: 2.2.0
                    status: action-required
                    nextAction:
                      type: use-sdk
                    threeDSServer:
                      transactionIdentifier: a623edc1-54bc-455d-9dea-c909783a37c3
                    createdAt: 1692972623233
                    updatedAt: 1692972623768
                Successful:
                  summary: Successful
                  value:
                    id: tds_57aa862f8bf7
                    merchant:
                      name: Ollivanders Wand Shop
                      website: https://www.ollivanders.co.uk
                      categoryCode: '5945'
                      country: gb
                    card:
                      lastFour: '4242'
                      expiry:
                        month: 09
                        year: '26'
                      brand: visa
                      funding: debit
                      segment: consumer
                      country: gb
                      currency: gbp
                    initiator:
                      type: customer
                    challenge:
                      preference: no-preference
                      reason: null
                    acquirer:
                      bin: '567834'
                      merchantIdentifier: '530249576123943'
                      country: gb
                    payment:
                      type: one-off
                      amount: 1000
                      currency: eur
                    version: 2.2.0
                    status: success
                    authentication:
                      flow: challenge
                      methods:
                      - sms-otp
                    cryptogram: MTIzNDU2Nzg5MDA5ODc2NTQzMjE=
                    eci:
                      value: '05'
                      descriptor: fully-authenticated
                      liabilityShift: true
                    ares:
                      transStatus:
                        value: C
                        detail: Challenge Required; Additional authentication is required using the CReq/CRes
                      transStatusReason: null
                    cres:
                      transStatus:
                        value: Y
                        detail: Authentication/Account Verification Successful
                    rreq:
                      transStatus:
                        value: Y
                        detail: Authentication Verification Successful.
                    accessControlServer:
                      transactionIdentifier: 0f651348-c519-4cfb-b349-0b302af9861f
                      referenceNumber: 3DS_LOA_ACS_STIN_020200_00417
                    directoryServer:
                      transactionIdentifier: 71c5d726-5d4b-426c-9d7d-131970f41c5c
                      referenceNumber: 3DS_LOA_DIS_VISA_020200_00828
                      network: visa
                    threeDSServer:
                      transactionIdentifier: a623edc1-54bc-455d-9dea-c909783a37c3
                    createdAt: 1692972623233
                    updatedAt: 1692972623768
                Failure:
                  summary: Failed
                  value:
                    id: tds_57aa862f8bf7
                    merchant:
                      name: Ollivanders Wand Shop
                      website: https://www.ollivanders.co.uk
                      categoryCode: '5945'
                      country: gb
                    card:
                      lastFour: '4242'
                      expiry:
                        month: 09
                        year: '26'
                      brand: visa
                      funding: debit
                      segment: consumer
                      country: gb
                      currency: gbp
                    initiator:
                      type: customer
                    challenge:
                      preference: no-preference
                      reason: null
                    acquirer:
                      bin: '567834'
                      merchantIdentifier: '530249576123943'
                      country: gb
                    payment:
                      type: one-off
                      amount: 1000
                      currency: eur
                    version: 2.2.0
                    status: failure
                    failureReason: suspected-fraud
                    accessControlServer:
                      transactionIdentifier: 0f651348-c519-4cfb-b349-0b302af9861f
                      referenceNumber: 3DS_LOA_ACS_STIN_020200_00417
                    directoryServer:
                      transactionIdentifier: 71c5d726-5d4b-426c-9d7d-131970f41c5c
                      referenceNumber: 3DS_LOA_DIS_VISA_020200_00828
                      network: visa
                    threeDSServer:
                      transactionIdentifier: a623edc1-54bc-455d-9dea-c909783a37c3
                    createdAt: 1692972623233
                    updatedAt: 1692972623768
  /payments/3ds-sessions/{3ds_session_id}/messages:
    get:
      x-hidden: true
      summary: Retrieve 3DS Messages
      description: 'Retrieve messages for a 3DS Session. This endpoint can be helpful for debugging 3DS sessions, providing insight into the raw 3DS messages that were exchanged between the 3DS Server and the Directory Server.

        '
      operationId: retrieveThreeDSMessages
      tags:
      - 3D Secure
      security:
      - ApiKey:
        - threeDSSession:read
      parameters:
      - name: 3ds_session_id
        in: path
        description: The id of the 3DS session
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Returns 3DS messages for the session.
          x-content: 'Returns an array of [3DS Message objects](#the-3ds-message-object).

            '
          content:
            application/json:
              schema:
                type: object
                properties:
                  messages:
                    type: array
                    description: Array of 3DS messages for the session
                    items:
                      type: object
                      properties:
                        type:
                          type: string
                          description: The type of 3DS message (e.g., AReq, ARes, CReq, CRes, RReq, RRes)
                          example: AReq
                        created_at:
                          type: integer
                          description: Timestamp when the message was created
                          example: 1751039450228
                        data:
                          type: object
                          description: The message data payload
              examples:
                MessagesExample:
                  summary: 3DS Messages
                  value:
                    messages:
                    - type: AReq
                      created_at: 1751039450228
                      data:
                        type: AReq
                        threeDSCompInd: N
                        threeDSRequestorAuthenticationInd: '01'
                        threeDSRequestorChallengeInd: '82'
                        threeDSRequestorID: 10085939*Example
                        threeDSRequestorName: Example 3DSS_Merchant
                        threeDSRequestorURL: https://example.com/
                        threeDSServerRefNumber: EXAMPLE_3DS_REF_NUMBER
                        threeDSServerOperatorID: '10085939'
                        threeDSServerTransID: 274af11d-2f5a-4050-b70e-8eda1e76f782
                        threeDSServerURL: https://example.3ds.com/result
                        acctType: '03'
                        acquirerBIN: '123456'
                        acquirerMerchantID: '123456789012'
                        browserAcceptHeader: '*/*'
                        browserIP: 192.168.1.1
                        browserJavaEnabled: false
                        browserJavascriptEnabled: true
                        browserLanguage: en-GB
                        browserColorDepth: '24'
                        browserScreenHeight: '1080'
                        browserScreenWidth: '1920'
                        browserTZ: '0'
                        browserUserAgent: Mozilla/5.0 (Example Browser)
                        cardExpiryDate: '2712'
                        acctNumber: '************1234'
                        deviceChannel: '02'
                        mcc: '1234'
                        merchantCountryCode: '372'
                        merchantName: Example Merchant
                        messageCategory: '01'
                        notificationURL: https://example.3ds.com/notification
                        purchaseAmount: '100000'
                        purchaseCurrency: '978'
                        purchaseExponent: '2'
                        purchaseDate: '20250627155050'
                        transType: '01'
                    - type: ARes
                      created_at: 1751039450626
                      data:
                        type: ARes
                        threeDSServerTransID: 274af11d-2f5a-4050-b70e-8eda1e76f782
                        acsChallengeMandated: Y
                        acsOperatorID: '123456789'
                        acsReferenceNumber: EXAMPLE_ACS_REF_NUMBER
                        acsTransID: '123456789012'
                        acsURL: https://example.3ds.com/creq
                        authenticationType: '02'
                        dsReferenceNumber: EXAMPLE_DS_REF_NUMBER
                        dsTransID: 4912cee8-3c89-4504-ac5b-0b2a3ef9489d
                        transStatus: Y
                        eci: '05'
components:
  schemas:
    PaymentOneOff:
      type: object
      summary: One-Off Payment
      description: A payment that is made in a single transaction.
      properties:
        type:
          type: string
          description: The value `one-off`.
          enum:
          - one-off
          example: one-off
        amount:
          type: integer
          description: The amount of the payment in the smallest currency unit (e.g. cents).
          example: 1000
        currency:
          type: string
          format: iso-4217-alphabetic
          description: The currency of the payment.
          example: gbp
      required:
      - type
      - amount
      - currency
    ThreeDSSession:
      type: object
      summary: The 3DS Session Object
      description: 'The 3D Secure API can be used in combination with our [Client-Side SDK''s](/sdks/javascript#uithreedsecure) to authenticate cardholders using 3D Secure. This API allows you to create, retrieve and update 3D Secure sessions.

        '
      properties:
        id:
          type: string
          description: A unique identifier assigned to each 3DS Authentication.
          example: tds_57aa862f8bf7
        card:
          type: object
          properties:
            lastFour:
              type: string
              description: The last four digits of the card number.
              example: '4242'
            expiry:
              $ref: '#/components/schemas/CardExpiry'
            brand:
              type: string
              description: The card brand.
              example: visa
            funding:
              type: string
              description: The card funding type.
              example: debit
            segment:
              type: string
              description: The card segment.
              example: consumer
            issuer:
              type: string
              description: The name of the card issuer.
              example: Fifth Third Bank, The
            country:
              type: string
              format: iso-3166-1-alpha-2
              description: The country code of the card.
              example: gb
            currency:
              type: string
              description: The currency code of the card. (ISO 4217 three-letter code)
              example: gbp
          required:
          - lastFour
          - expiry
          - brand
          - funding
          - segment
          - country
          - currency
        acquirer:
          $ref: '#/components/schemas/Acquirer'
        merchant:
          type: object
          description: The merchant details.
          properties:
            name:
              type: string
              description: The name of the merchant.
              example: Ollivanders Wand Shop
            website:
              type: string
              description: The website of the merchant.
              example: https://www.ollivanders.co.uk
            categoryCode:
              type: string
              description: The category code of the merchant.
              example: '5945'
            country:
              type: string
              format: iso-3166-1-alpha-2
              description: The country code of the merchant.
              example: ie
          required:
          - name
          - website
          - categoryCode
          - country
        payment:
          type: object
          description: The payment details of the 3D Secure Authentication.
          oneOf:
          - $ref: '#/components/schemas/PaymentInstallment'
          - $ref: '#/components/schemas/PaymentOneOff'
          - $ref: '#/components/schemas/PaymentRecurring'
        challenge:
          $ref: '#/components/schemas/ThreeDSChallenge'
        initiator:
          $ref: '#/components/schemas/ThreeDSInitiator'
        accessControlServer:
          $ref: '#/components/schemas/ThreeDSAccessControlServer'
        directoryServer:
          $ref: '#/components/schemas/ThreeDSDirectoryServer'
        threeDSServer:
          type: object
          description: Details about the 3DS Server involved in the 3DS transaction.
          properties:
            transac

# --- truncated at 32 KB (53 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/evervault/refs/heads/main/openapi/evervault-3d-secure-api-openapi.yml