Ravelin 3D Secure API

EMV 3DS 2.x authentication operations.

Operations 4

POST /3ds/version Look Up 3DS Version for a Card #
POST /3ds/authenticate Send a 3DS Authentication Request (AReq) #
POST /3ds/challenge Send a 3DS Challenge Request #
POST /3ds/result Retrieve a 3DS Authentication Result #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/ravelin-3d-secure-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

ravelin-3d-secure-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Ravelin Server 3D Secure API
  version: '1'
  description: Ravelin's PSP-agnostic, PCI 3DS-validated 3D Secure Server API.
  contact:
    name: Ravelin Support
    url: https://support.ravelin.com/
  termsOfService: https://www.ravelin.com/legal/terms-of-service
  license:
    name: Proprietary
servers:
- url: https://3ds.live.pci.ravelin.com
  description: PCI 3DS production endpoint
security:
- secretApiKey: []
tags:
- name: 3D Secure
  description: EMV 3DS 2.x authentication operations.
paths:
  /3ds/version:
    post:
      tags:
      - 3D Secure
      summary: Look Up 3DS Version for a Card
      operationId: lookup3dsVersion
      description: Look up the available 3DS protocol versions for a given card. Used before initiating an Authentication Request to determine the supported 3DS Method URL and protocol version.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - timestamp
              properties:
                timestamp:
                  type: integer
                  format: int64
                pan:
                  type: string
                paymentMethod:
                  type: object
                  description: Encrypted payment method payload.
      responses:
        '200':
          description: Version lookup result.
          content:
            application/json:
              schema:
                type: object
                properties:
                  threeDSServerTransID:
                    type: string
                  acsStartProtocolVersion:
                    type: string
                  acsEndProtocolVersion:
                    type: string
                  dsStartProtocolVersion:
                    type: string
                  dsEndProtocolVersion:
                    type: string
                  threeDSMethodURL:
                    type: string
                    format: uri
  /3ds/authenticate:
    post:
      tags:
      - 3D Secure
      summary: Send a 3DS Authentication Request (AReq)
      operationId: authenticate3ds
      description: Send transaction, merchant, and cardholder data to the 3DS Server to initiate an Authentication Request (AReq). Returns the transStatus and, when applicable, the data needed to proceed to a challenge.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AuthenticateRequest'
      responses:
        '200':
          description: AReq result.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthenticateResponse'
  /3ds/challenge:
    post:
      tags:
      - 3D Secure
      summary: Send a 3DS Challenge Request
      operationId: challenge3ds
      description: Submit the Challenge Request when the AReq returned transStatus=C, completing the cardholder challenge flow (OTP, biometric, etc.).
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - timestamp
              - acsTransID
              - threeDSServerTransID
              properties:
                timestamp:
                  type: integer
                  format: int64
                acsTransID:
                  type: string
                threeDSServerTransID:
                  type: string
      responses:
        '200':
          description: Challenge response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthenticateResponse'
  /3ds/result:
    post:
      tags:
      - 3D Secure
      summary: Retrieve a 3DS Authentication Result
      operationId: result3ds
      description: Retrieve the final authentication result by 3DS Server Transaction ID after a Challenge has completed.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - timestamp
              - threeDSServerTransID
              properties:
                timestamp:
                  type: integer
                  format: int64
                threeDSServerTransID:
                  type: string
      responses:
        '200':
          description: Authentication result.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthenticateResponse'
components:
  schemas:
    AuthenticateResponse:
      type: object
      properties:
        transStatus:
          type: string
          enum:
          - Y
          - A
          - N
          - U
          - C
          - D
          - R
          - I
          - S
          description: 'Authentication outcome. Y=Authenticated, A=Attempted, N=Not authenticated,

            U=Authentication unavailable, C=Challenge required, D=Challenge required (decoupled),

            R=Rejected, I=Informational only, S=Challenge using cardholder-facing service.

            '
        authenticationValue:
          type: string
          description: CAVV / AAV / AEVV verification value, base64 encoded.
        acsTransID:
          type: string
        threeDSServerTransID:
          type: string
        eci:
          type: string
        liabilityShifted:
          type: boolean
        acsURL:
          type: string
          format: uri
        cReq:
          type: string
          description: Base64 Challenge Request payload, when transStatus=C.
    AuthenticateRequest:
      type: object
      required:
      - timestamp
      - areqData
      properties:
        timestamp:
          type: integer
          format: int64
        pan:
          type: string
          description: Unencrypted PAN, when not using an encrypted paymentMethod.
        paymentMethod:
          type: object
          description: Encrypted payment method payload.
        areqData:
          type: object
          required:
          - messageCategory
          - deviceChannel
          - threeDSRequestorID
          - threeDSRequestorName
          - threeDSRequestorURL
          properties:
            messageCategory:
              type: string
              enum:
              - '01'
              - '02'
              description: 01 = Payment Authentication, 02 = Non-Payment Authentication.
            deviceChannel:
              type: string
              enum:
              - '01'
              - '02'
              - '03'
              description: 01 = APP, 02 = BRW, 03 = 3RI.
            threeDSRequestorID:
              type: string
            threeDSRequestorName:
              type: string
            threeDSRequestorURL:
              type: string
              format: uri
            purchaseAmount:
              type: string
            purchaseCurrency:
              type: string
            purchaseExponent:
              type: string
            purchaseDate:
              type: string
            acquirerMerchantID:
              type: string
            acquirerBIN:
              type: string
            merchantName:
              type: string
            merchantCountryCode:
              type: string
            mcc:
              type: string
  securitySchemes:
    secretApiKey:
      type: apiKey
      in: header
      name: Authorization
      description: Secret API key prefixed with `token`.