Silverflow 3DS Authentication API

3DS Authentication Endpoints

Business capability
Card Transaction Processing Management BC-1340.70

Operations 5

POST /3ds Create 3DS Authentication #
GET /3ds List 3DS Authentications #
POST /3ds/3ri Create 3RI Authentication #
GET /3ds/{threedsKey} Get 3DS Authentication #
POST /3ds/cardRanges Retrieve Card Ranges #

Documentation

Specifications

Other Resources

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/silverflow-3ds-authentication-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

silverflow-3ds-authentication-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  description: '**This OpenAPI specification cannot be used for code generation.** Please reach out to your TAM regarding code generation using the API Spec.'
  version: 1.417.0
  title: Silverflow 3DS Authentication API
  contact:
    name: API Support
    email: support@silverflow.com
  license:
    name: Commercial
servers:
- url: https://eu-west-1.api.silverflow.com/v1
  description: Production URL for Europe - Equivalent to https://api.silverflow.co/v1
- url: https://us-east-2.api.silverflow.com/v1
  description: Production URL for North America
- url: https://eu-west-1.api-sbx.silverflow.com/v1
  description: Sandbox URL - Equivalent to https://api-sbx.silverflow.co/v1
security:
- ApiKey: []
- BearerToken: []
tags:
- name: 3DS Authentication
  description: 3DS Authentication Endpoints
paths:
  /3ds:
    post:
      operationId: create3dsAuthentication
      summary: Create 3DS Authentication
      description: 'Create a new 3DS authentication. This endpoint can potentially trigger a 3DS challenge flow.


        Requires the `threeDs:Create` permission.


        Diners support is EXPERIMENTAL.


        Standalone merchant info (`merchantInfo`) is EXPERIMENTAL.'
      tags:
      - 3DS Authentication
      requestBody:
        description: 'Create a 3DS authentication.

          '
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PublicCreate3dsRequest'
            examples:
              threeDsWithMerchantAcceptor:
                $ref: '#/components/examples/ThreeDsRequestWithMerchantAcceptorExample'
              threeDsWithMerchantInfo:
                $ref: '#/components/examples/ThreeDsRequestWithMerchantInfoExample'
      responses:
        '201':
          description: The 3DS authentication entity
          headers:
            Location:
              description: The URL of the newly created 3DS authentication
              schema:
                type: string
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/ThreeDsFrictionlessAuthenticated'
                - $ref: '#/components/schemas/ThreeDsChallenge'
                - $ref: '#/components/schemas/ThreeDsNoFlowNoAuth'
                - $ref: '#/components/schemas/ThreeDsDataOnly'
              examples:
                challenge:
                  $ref: '#/components/examples/ThreeDsFrictionlessResponseWithMerchantAcceptorExample'
                frictionless:
                  $ref: '#/components/examples/ThreeDsChallengeResponseWithMerchantAcceptorExample'
                frictionlessWithMerchantInfo:
                  $ref: '#/components/examples/ThreeDsFrictionlessResponseWithMerchantInfoExample'
                challengeWithMerchantInfo:
                  $ref: '#/components/examples/ThreeDsChallengeResponseWithMerchantInfoExample'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/InvalidRequestErrorDetails'
                - $ref: '#/components/schemas/schemas-InvalidInputErrorDetails'
              examples:
                InvalidRequestErrorExample:
                  $ref: '#/components/examples/InvalidRequestExample'
                InvalidInputErrorExample:
                  $ref: '#/components/examples/InvalidInputErrorExample'
        '401':
          $ref: '#/components/responses/components-responses-UnauthorizedError'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/ReferencedEntityNotFoundErrorDetails'
                - $ref: '#/components/schemas/UnsupportedCardNetworkErrorDetails'
                - $ref: '#/components/schemas/UnsupportedCardNetworkRegionErrorDetails'
              examples:
                ReferencedEntityNotFoundErrorExample:
                  $ref: '#/components/examples/ReferencedEntityNotFoundErrorExample'
                UnsupportedCardNetwork:
                  $ref: '#/components/examples/UnsupportedCardNetwork'
                UnsupportedCardNetworkRegion:
                  $ref: '#/components/examples/UnsupportedCardNetworkRegion'
        '422':
          description: Unprocessable Content
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/UnsupportedProtocolVersionErrorDetails'
                - $ref: '#/components/schemas/UnenrolledAccountNumberErrorDetails'
                - $ref: '#/components/schemas/UnenrolledAcquireOrMerchantErrorDetails'
              examples:
                UnsupportedProtocolVersionCardExample:
                  $ref: '#/components/examples/UnsupportedProtocolVersionCardExample'
                UnenrolledAccountNumberExample:
                  $ref: '#/components/examples/UnenrolledAccountNumberExample'
                UnenrolledAcquireOrMerchantExample:
                  $ref: '#/components/examples/UnenrolledAcquireOrMerchantExample'
        '429':
          $ref: '#/components/responses/components-responses-TooManyRequestsError'
        '500':
          $ref: '#/components/responses/InternalServerError'
    get:
      operationId: get3dsAuthentications
      summary: List 3DS Authentications
      description: 'List 3DS transactions. 3DS authentications returned from this endpoint

        will never have the `authenticationValue` property in either `ares` or `rreq` properties.


        Requires the `threeDs:List` permission.'
      tags:
      - 3DS Authentication
      parameters:
      - $ref: '#/components/parameters/parameters-offsetToken'
      - $ref: '#/components/parameters/sortOrder'
      - $ref: '#/components/parameters/limit'
      responses:
        '200':
          description: A (paged) list of 3DS authentications.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/threeDsPage'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvalidOffsetTokenErrorDetails'
              examples:
                InvalidOffsetToken:
                  $ref: '#/components/examples/InvalidOffsetTokenExample'
        '401':
          $ref: '#/components/responses/components-responses-UnauthorizedError'
        '429':
          $ref: '#/components/responses/components-responses-TooManyRequestsError'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /3ds/3ri:
    post:
      operationId: create3riAuthentication
      summary: Create 3RI Authentication
      description: 'Create a new 3RI authentication. Also known as merchant-initiated authentications, allows merchants to authenticate a transaction without the direct involvement of the cardholder.


        Requires the `threeDs:Create` permission.


        Diners support is EXPERIMENTAL.


        Standalone merchant info (`merchantInfo`) is EXPERIMENTAL.'
      tags:
      - 3DS Authentication
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ThreeRiRequest'
            examples:
              threeRiWithMerchantAcceptor:
                $ref: '#/components/examples/RequestWithMerchantAcceptor'
              threeRiWithMerchantInfo:
                $ref: '#/components/examples/RequestWithMerchantInfo'
      responses:
        '201':
          description: The 3RI authentication entity
          headers:
            Location:
              description: The URL of the newly created 3RI authentication
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ThreeRiResponse'
              examples:
                authenticated:
                  $ref: '#/components/examples/ResponseWithMerchantAcceptor'
                authenticatedWithMerchantInfo:
                  $ref: '#/components/examples/ResponseWithMerchantInfo'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/InvalidRequestErrorDetails'
                - $ref: '#/components/schemas/schemas-InvalidInputErrorDetails'
              examples:
                InvalidRequestErrorExample:
                  $ref: '#/components/examples/InvalidRequestExample'
                InvalidInputErrorExample:
                  $ref: '#/components/examples/InvalidInputErrorExample'
        '401':
          $ref: '#/components/responses/components-responses-UnauthorizedError'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/ReferencedEntityNotFoundErrorDetails'
                - $ref: '#/components/schemas/UnsupportedCardNetworkErrorDetails'
                - $ref: '#/components/schemas/UnsupportedCardNetworkRegionErrorDetails'
              examples:
                ReferencedEntityNotFoundErrorExample:
                  $ref: '#/components/examples/ReferencedEntityNotFoundErrorExample'
                UnsupportedCardNetwork:
                  $ref: '#/components/examples/UnsupportedCardNetwork'
                UnsupportedCardNetworkRegion:
                  $ref: '#/components/examples/UnsupportedCardNetworkRegion'
        '422':
          description: Unprocessable Content
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/UnsupportedProtocolVersionErrorDetails'
                - $ref: '#/components/schemas/UnenrolledAccountNumberErrorDetails'
                - $ref: '#/components/schemas/UnenrolledAcquireOrMerchantErrorDetails'
              examples:
                UnsupportedProtocolVersion3riExample:
                  $ref: '#/components/examples/UnsupportedProtocolVersion3riExample'
                UnsupportedProtocolVersionCardExample:
                  $ref: '#/components/examples/UnsupportedProtocolVersionCardExample'
                UnenrolledAccountNumberExample:
                  $ref: '#/components/examples/UnenrolledAccountNumberExample'
                UnenrolledAcquireOrMerchantExample:
                  $ref: '#/components/examples/UnenrolledAcquireOrMerchantExample'
        '429':
          $ref: '#/components/responses/components-responses-TooManyRequestsError'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /3ds/{threedsKey}:
    get:
      operationId: get3dsAuthentication
      summary: Get 3DS Authentication
      description: 'Returns the 3DS authentication indentified by the key.


        Requires `threeDs:Get` permission.'
      tags:
      - 3DS Authentication
      parameters:
      - $ref: '#/components/parameters/threedsKey'
      responses:
        '200':
          description: The 3DS authentication
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ThreeDs'
              examples:
                frictionlessWithMerchantAcceptor:
                  $ref: '#/components/examples/ThreeDsFrictionlessResponseWithMerchantAcceptorExample'
                challengeWithMerchantAcceptor:
                  $ref: '#/components/examples/ThreeDsChallengeResponseWithMerchantAcceptorExample'
                authenticatedChallengeWithMerchantAcceptor:
                  $ref: '#/components/examples/ThreeDsAuthenticatedChallengeResponseWithMerchantAcceptorExample'
                threeRiWithMerchantAcceptor:
                  $ref: '#/components/examples/ResponseWithMerchantAcceptor'
                frictionlessWithMerchantInfo:
                  $ref: '#/components/examples/ThreeDsFrictionlessResponseWithMerchantInfoExample'
                challengeWithMerchantInfo:
                  $ref: '#/components/examples/ThreeDsChallengeResponseWithMerchantInfoExample'
                authenticatedChallengeWithMerchantInfo:
                  $ref: '#/components/examples/ThreeDsAuthenticatedChallengeResponseWithMerchantInfoExample'
                threeRiWithMerchantInfo:
                  $ref: '#/components/examples/ResponseWithMerchantInfo'
        '401':
          $ref: '#/components/responses/components-responses-UnauthorizedError'
        '404':
          description: Entity not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EntityNotFoundErrorDetails'
              examples:
                InternalServerErrorExample:
                  $ref: '#/components/examples/EntityNotFoundExample'
        '429':
          $ref: '#/components/responses/components-responses-TooManyRequestsError'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /3ds/cardRanges:
    post:
      operationId: 3dsCardRanges
      summary: Retrieve Card Ranges
      description: 'Obtain information about which 3DS versions and features are supported for the given PAN. In case of co-branded cards information from both brands is retrieved.


        Requires `threeDs:Create` permission.'
      tags:
      - 3DS Authentication
      requestBody:
        description: 'Details of the PAN to retrieve information about.

          '
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ThreeDsCardRangesRequest'
            examples:
              withoutNetwork:
                $ref: '#/components/examples/Request'
      responses:
        '200':
          description: PAN information.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ThreeDsCardRangesResponse'
              examples:
                withoutNetwork:
                  $ref: '#/components/examples/Response'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/InvalidRequestErrorDetails'
                - $ref: '#/components/schemas/schemas-InvalidInputErrorDetails'
              examples:
                InvalidRequestErrorExample:
                  $ref: '#/components/examples/InvalidRequestExample'
                InvalidInputErrorExample:
                  $ref: '#/components/examples/InvalidInputErrorExample'
        '401':
          $ref: '#/components/responses/components-responses-UnauthorizedError'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReferencedEntityNotFoundErrorDetails'
              examples:
                ReferencedEntityNotFoundErrorExample:
                  $ref: '#/components/examples/ReferencedEntityNotFoundErrorExample'
        '429':
          $ref: '#/components/responses/components-responses-TooManyRequestsError'
        '500':
          $ref: '#/components/responses/InternalServerError'
components:
  schemas:
    PublicCreate3dsRequestWithMerchantAcceptor:
      title: With Merchant Acceptor
      type: object
      additionalProperties: false
      required:
      - authenticationContext
      - card
      - amount
      - type
      - merchantAcceptorKey
      properties:
        merchantAcceptorKey:
          $ref: '#/components/schemas/acceptorKeyRef'
        card:
          $ref: '#/components/schemas/Card'
        type:
          $ref: '#/components/schemas/ThreeDsType'
        amount:
          $ref: '#/components/schemas/Amount'
        challengeIndicator:
          $ref: '#/components/schemas/challengeIndicator'
        authenticationContext:
          $ref: '#/components/schemas/AuthenticationContext'
        transactionReference:
          $ref: '#/components/schemas/transactionReference'
        localTransactionDateTime:
          $ref: '#/components/schemas/localTransactionDateTime'
        recurringExpiry:
          $ref: '#/components/schemas/recurringExpiry'
        recurringFrequency:
          $ref: '#/components/schemas/recurringFrequency'
        dynamicDescriptor:
          $ref: '#/components/schemas/DynamicDescriptor'
        cardholderInformation:
          $ref: '#/components/schemas/CardholderInformation'
        threeDSServerTransID:
          allOf:
          - type: string
            description: 'The `threeDSServerTransID` used to perform a 3DS Method flow.


              Include this field in the authentication request if 3DS Method has been used to allow the issuer to capture browser information prior to initiating this authentication request.

              '
          - $ref: '#/components/schemas/threeDSServerTransID'
        billingAddress:
          description: The billing address of the cardholder
          $ref: '#/components/schemas/AddressInput'
        shippingAddress:
          $ref: '#/components/schemas/AddressInput'
    amountValue:
      type: integer
      format: int64
      minimum: 0
      maximum: 999999999999
      description: 'The amount in minor units. For example `$12.34` should be encoded as `1234`. Note that not all

        currencies have 2 minor units. Some have three or zero.

        '
      example: 1234
    dsReferenceNumber:
      type: string
      description: EMVCo-assigned unique identifier to track approved DS.
    schemas-CountryCodeAlpha3:
      type: object
      title: alpha-3
      required:
      - alpha3
      properties:
        alpha3:
          type: string
          pattern: ^[A-Z]{3}$
          description: ISO 3166-1 alpha-3 country code
          externalDocs:
            description: Find more info here
            url: https://www.iso.org/iso-3166-country-codes.html
          example: NLD
    cardEntry:
      description: 'The method used to capture the card details.

        '
      type: string
      enum:
      - e-commerce
      - card-on-file
      - token
      - token-on-file
    PhoneNumber:
      type: object
      additionalProperties: false
      required:
      - countryCode
      - number
      properties:
        countryCode:
          description: Country code should be between 1 to 3 digits, more information [here](https://en.wikipedia.org/wiki/E.164).
          type: string
          minLength: 1
          maxLength: 3
          pattern: ^[0-9]+$
          example: 31
        number:
          description: Phone number should be between 1 and 15 digits, more information [here](https://en.wikipedia.org/wiki/E.164).
          type: string
          minLength: 1
          maxLength: 15
          pattern: ^[0-9]+$
          example: 63012345678
    challengeResult:
      allOf:
      - description: "Indicates that the cardholder has finished the challenge flow and whether the \ncardholder is either authenticated or non-authenticated.\n"
        enum:
        - authenticated
        - non-authenticated
      - $ref: '#/components/schemas/result'
    transStatus:
      type: string
      enum:
      - Y
      - N
      - U
      - A
      - C
      - D
      - R
      - I
      description: Indicates whether a transaction qualifies as an authenticated transaction or account verification.
    recurringFrequency:
      type: integer
      description: 'Number of days between recurring authorizations.


        Required when `type.order` is `recurring` or `installment`.

        '
    PublicCreate3dsRequestWithMerchantInfo:
      title: With Merchant Info [EXPERIMENTAL]
      type: object
      additionalProperties: false
      required:
      - authenticationContext
      - card
      - amount
      - type
      - merchantInfo
      properties:
        merchantInfo:
          $ref: '#/components/schemas/MerchantInfoRequest'
        card:
          $ref: '#/components/schemas/Card'
        type:
          $ref: '#/components/schemas/ThreeDsType'
        amount:
          $ref: '#/components/schemas/Amount'
        challengeIndicator:
          $ref: '#/components/schemas/challengeIndicator'
        authenticationContext:
          $ref: '#/components/schemas/AuthenticationContext'
        transactionReference:
          $ref: '#/components/schemas/transactionReference'
        localTransactionDateTime:
          $ref: '#/components/schemas/localTransactionDateTime'
        recurringExpiry:
          $ref: '#/components/schemas/recurringExpiry'
        recurringFrequency:
          $ref: '#/components/schemas/recurringFrequency'
        dynamicDescriptor:
          $ref: '#/components/schemas/DynamicDescriptor'
        cardholderInformation:
          $ref: '#/components/schemas/CardholderInformation'
        threeDSServerTransID:
          allOf:
          - type: string
            description: 'The `threeDSServerTransID` used to perform a 3DS Method flow.


              Include this field in the authentication request if 3DS Method has been used to allow the issuer to capture browser information prior to initiating this authentication request.

              '
          - $ref: '#/components/schemas/threeDSServerTransID'
        billingAddress:
          description: The billing address of the cardholder
          $ref: '#/components/schemas/AddressInput'
        shippingAddress:
          $ref: '#/components/schemas/AddressInput'
    cardHolderInfo:
      type: string
      description: Text provided by the ACS/issuer to cardholder during a frictionless or decoupled transaction.
    schemas-currencyCode:
      type: string
      pattern: ^[A-Z]{3}$
      externalDocs:
        description: Find more info here
        url: https://www.iso.org/iso-4217-currency-codes.html
      example: EUR
    components-schemas-line1:
      type: string
      pattern: ^(?!\s*$).+
      minLength: 1
      maxLength: 50
      description: 'Address line 1

        '
      example: Langtown Road
    errorStatus:
      type: integer
      format: int32
      description: 'The HTTP status code generated by the origin server for this occurrence

        of the problem.

        '
    InvalidRequestErrorDetails:
      type: object
      required:
      - type
      - title
      - status
      - detail
      - instance
      properties:
        type:
          allOf:
          - $ref: '#/components/schemas/errorType'
          - enum:
            - /silverflow/problems/invalid-request
        title:
          allOf:
          - $ref: '#/components/schemas/errorTitle'
          - enum:
            - Invalid Request
        status:
          allOf:
          - $ref: '#/components/schemas/errorStatus'
          - enum:
            - 400
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
    acsReferenceNumber:
      type: string
      description: Unique identifier assigned by the EMVCo secretariat upon testing and approval.
    components-schemas-postalCode:
      type: string
      pattern: ^[a-zA-Z0-9- ]+$
      minLength: 1
      maxLength: 16
      description: 'The postal code of the address, allowing spaces and dashes

        '
      example: 1234BC
    MerchantInfoRequest:
      type: object
      description: 'Merchant details provided directly in the request, as an alternative to

        providing a `merchantAcceptorKey`.

        '
      additionalProperties: false
      required:
      - merchantId
      - mcc
      - merchantName
      - merchantCountryCode
      - websiteUrl
      - network
      properties:
        acquirerBin:
          type: string
          description: '6-11 digit Bank Identification Number assigned by the card network. Required for all card networks except AMEX.

            For AMEX populate this with the SE Number or leave blank depending on the model, see 3DS Guide.

            '
          pattern: ^[0-9]+$
          minLength: 6
          maxLength: 11
        merchantId:
          type: string
          description: 'Merchant identifier (MID) assigned by the acquirer.

            For AMEX populate this with the Seller ID or SE Number depending on the model, see 3DS Guide.

            '
          minLength: 1
          maxLength: 20
        mcc:
          type: string
          description: 4-digit ISO 18245 merchant category code
          pattern: ^[0-9]+$
          minLength: 4
          maxLength: 4
        merchantName:
          type: string
          description: Merchant's doing-business-as name
          minLength: 1
          maxLength: 40
        merchantCountryCode:
          description: ISO 3166-1 country code. Can be provided in alpha-2, alpha-3, or numeric format
          oneOf:
          - $ref: '#/components/schemas/schemas-CountryCodeAlpha3'
          - $ref: '#/components/schemas/schemas-CountryCodeAlpha2'
          - $ref: '#/components/schemas/schemas-CountryCodeNumeric'
        websiteUrl:
          type: string
          description: Merchant's website URL
          maxLength: 2048
        network:
          allOf:
          - description: The card network that will process the transaction and handle authentication.
          - $ref: '#/components/schemas/network'
    noAuthResult:
      allOf:
      - description: 'Indicates a negative 3DS result, indicating that the cardholder was not

          authenticated.

          '
        enum:
        - attempt
        - non-authenticated
      - $ref: '#/components/schemas/result'
    authenticationValue:
      type: string
      description: 'The result value from the 3DS transaction received from the ACS. This value is no longer present on responses after 45 days have passed after the authentication.

        Note that Mastercard and Visa use a different underlying format.

        This property will only be present in the ARes if `transStatus` is `Y`, `A` and conditionally (by DS rules) `I`.

        '
    errorInstance:
      type: string
      description: 'A reference that identifies the specific occurrence of the error. The instance is unique for every error.

        '
    ThreeDsFrictionlessAuthenticated:
      type: object
      title: 3DS Frictionless Authenticated
      required:
      - key
      - amount
      - network
      - protocolVersion
      - deviceChannel
      - flow
      - result
      - ares
      - created
      - version
      properties:
        key:
          $ref: '#/components/schemas/threedsKey'
        merchantAcceptorRef:
          $ref: '#/components/schemas/schemas-AcceptorRef'
        merchantInfo:
          $ref: '#/components/schemas/MerchantInfoResponse'
        amount:
          $ref: '#/components/schemas/ResponseAmount'
        network:
          $ref: '#/components/schemas/authenticationNetwork'
        protocolVersion:
          $ref: '#/components/schemas/protocolVersion'
        deviceChannel:
          $ref: '#/components/schemas/deviceChannel'
        flow:
          $ref: '#/components/schemas/frictionlessFlow'
        result:
          $ref: '#/components/schemas/frictionlessResult'
        ares:
          $ref: '#/components/schemas/ARes'
        transactionReference:
          $ref: '#/components/schemas/transactionReference'
        fraudLiability:
          $ref: '#/components/schemas/fraudLiability'
        type:
          type: object
          description: Transaction type information from the request
          properties:
            order:
              $ref: '#/components/schemas/order'
            intent:
              $ref: '#/components/schemas/intent'
        created:
          $ref: '#/components/schemas/schemas-created'
        version:
          $ref: '#/components/schemas/version'
    schemas-AcceptorRef:
      type: object
      description: Reference key and status of the acceptor
      required:
      - key
      - version
      properties:
        key:
          $ref: '#/components/schemas/schemas-acceptorKey'
        version:
          $ref: '#/components/schemas/version'
    AuthenticationRequiredErrorDetails:
      type: object
      required:
      - type
      - title
      - status
      - detail
      - instance
      properties:
        type:
          allOf:
          - $ref: '#/components/schemas/errorType'
          - enum:
            - /silverflow/problems/authentication-required
        title:
          $ref: '#/components/schemas/errorTitle'
        status:
          allOf:
          - $ref: '#/components/schemas/errorStatus'
          - enum:
            - 401
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
    schemas-Page:
      type: object
      properties:
        offsetToken:
          $ref: '#/components/schemas/schemas-offsetToken'
    schemas-CountryCodeNumeric:
      type: object
      title: numeric
      required:
      - numeric
      properties:
        numeric:
          type: string
          pattern: ^[0-9]{3}$
          description: ISO 3166-1 numeric country code
          externalDocs:
            description: Find more info here
            url: https://www.iso.org/iso-3166-country-codes.html
          example: '528'
    ThreeRiARes:
      type: object
      description: The issuer's response to the 3DS request.
      allOf:
      - type: object
        required:
        - messageVersion
        - threeDSServerTransID
        - messageType
        - dsTransID
        - acsTransID
        - transStatus
        - dsReferenceNumber
        - acsReferenceNumber
        properties:
          threeDSServerTransID:
            $ref: '#/components/schemas/threeDSServerTransID'
          messageExtension:
            $ref: '#/components/schemas/MessageExtensionList'
          messageType:
            type: string
            enum:
            - ARes
          dsTransID:
            $ref: '#/components/schemas/dsTransID'
          acsTransID:
            $ref: '#/components/schemas/acsTransID'
          transStatus:
            $ref: '#/components/schemas/ThreeRiTransStatus'
          messageVersion:
            type: string
            description: The 3DS protocol version which has been used to perform 3DS. For 3RI it's always 2.2.0.
            enum:
            - 2.2.0
          transStatusReason:
            $ref: '#/components/schemas/transStatusReason'
          cardholderInfo:
            $ref: '#/components/schemas/cardHolderInfo'
          acsChallengeMandated:
            $ref: '#/components/schemas/acsChallengeMandated'
          dsReferenceNumber:
            $ref: '#/components/schemas/dsReferenceNumber'
          acsReferenceNumber:
            $ref: '#/components/schemas/acsReferenceNumber'
          acsOperatorID:
            $ref: '#/components/schemas/acsOperatorID'
          acsDecConInd:
            $ref: '#/components/schemas/acsDecConInd'
          authenticationType:
            $ref: '#/components/schemas/authenticationType'
          eci:
            $ref: '#/components/schemas/eci'
          whiteListStatus:
            $ref: '#/components/schemas/whiteListStatus'
          whiteListStatusSource:
            $ref: '#/components/schemas/whiteListStatusSource'
          authenticationValue:
            $ref: '#/components/schemas/authenticationValue'
    intent:
      description: 'The intention of the cardholder.

        '
      type: string
      enum:
      - purchase
      - reservation
      - account-status
      - payout
      - payout-status
      - funding
      - advice
      - refund
    threedsKey:
      description: Uniquely identifies a 3DS authentication.
      type: string
      pattern: ^tds-[a-zA-Z0-9]+$
      example: tds-2lCYLHDuRPW9MvQK3sd6
    browserScreenWidth:
      type: string
      minLength: 1
      maxLength: 6
      pattern: ^[0-9]+$
      description: 'Total width of the cardholder''s screen in pixels. Value is returned from the `screen.width` property from the HTML DOM API.

        '
      example: '1536'
    order:
      description: 'The method used to place the order.


        When set to `recurring` or `installment`, you are also required to set `recurringExpiry` and `recurringFrequency`.

        '
      type: string
      enum:
      - checkout
      - unspecified
      - one-click
      - recurring
      - ucof
      - installment
    InvalidOffsetToken

# --- truncated at 32 KB (132 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/silverflow/refs/heads/main/openapi/silverflow-3ds-authentication-api-openapi.yml