> ## Documentation Index
> Fetch the complete documentation index at: https://developers.uvvipay.com.br/llms.txt
> Use this file to discover all available pages before exploring further.

# Iniciar autenticação 3DS

> Inicia a autenticação 3DS. Chamado pelo script 3ds.js. Aceita header CLIENT-ID (integração API) ou PAYMENT-LINK-ID (checkout do link de pagamento, sem merchant_credentials). O access token vem de /v1/3ds/generateToken ou /v1/3ds/generate-token.



## OpenAPI

````yaml POST /v1/3ds/authentications
openapi: 3.0.0
info:
  title: UvviPay Public API
  description: >-
    Endpoints públicos da plataforma UvviPay para integração de subcontas
    (submerchants).
  version: 1.0.0
  contact: {}
servers:
  - url: https://api.uvvipay.com.br
    description: Produção
  - url: https://api-staging.uvvipay.com.br
    description: Staging
security:
  - client-id: []
    client-secret: []
tags: []
paths:
  /v1/3ds/authentications:
    post:
      tags:
        - 3DS
      summary: Iniciar autenticação 3DS
      description: >-
        Inicia a autenticação 3DS. Chamado pelo script 3ds.js. Aceita header
        CLIENT-ID (integração API) ou PAYMENT-LINK-ID (checkout do link de
        pagamento, sem merchant_credentials). O access token vem de
        /v1/3ds/generateToken ou /v1/3ds/generate-token.
      operationId: threeDsAuthentications
      parameters:
        - name: client-id
          in: header
          description: >-
            ID público da credencial do merchant (integração API). Mutuamente
            exclusivo com payment-link-id.
          required: false
          schema:
            type: string
        - name: payment-link-id
          in: header
          description: >-
            UUID do payment link (checkout público). Mutuamente exclusivo com
            client-id.
          required: false
          schema:
            type: string
            format: uuid
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AuthenticationsRequestDto'
      responses:
        '200':
          description: Autenticação iniciada
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthenticationsResponseDto'
        '400':
          description: Erro de validação
        '401':
          description: CLIENT-ID ou PAYMENT-LINK-ID inválido ou ausente
components:
  schemas:
    AuthenticationsRequestDto:
      type: object
      properties:
        token:
          type: string
          description: Access token obtido em /v1/3ds/generateToken
        device:
          $ref: '#/components/schemas/DeviceInfoDto'
        order:
          $ref: '#/components/schemas/OrderInfoDto'
        card:
          $ref: '#/components/schemas/CardInfoDto'
        alternate_authentication_method:
          type: string
          default: '02'
          example: '02'
        challenge_code:
          type: string
          enum:
            - '01'
            - '02'
            - '03'
            - '04'
          default: '03'
          description: 03 = sempre forçar desafio
      required:
        - token
        - device
        - order
        - card
    AuthenticationsResponseDto:
      type: object
      properties:
        status:
          type: integer
          example: 200
        message:
          type: string
          example: SUCCESSFUL
        data:
          type: array
          items:
            $ref: '#/components/schemas/AuthenticationsDataDto'
        error:
          type: array
          items:
            type: object
          example:
            - {}
    DeviceInfoDto:
      type: object
      properties:
        http_browser_screen_height:
          type: string
          example: '1080'
        http_browser_screen_width:
          type: string
          example: '1920'
        ip_address:
          type: string
          example: 192.168.1.100
        http_browser_color_depth:
          type: string
          example: '24'
        http_browser_java_enabled:
          type: string
          example: 'N'
        http_browser_java_script_enabled:
          type: string
          example: 'Y'
        http_browser_language:
          type: string
          example: pt-BR
        http_browser_time_difference:
          type: string
          example: '180'
        http_accept_browser_value:
          type: string
          example: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
        http_accept_content:
          type: string
          example: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
      required:
        - http_browser_screen_height
        - http_browser_screen_width
        - ip_address
        - http_browser_color_depth
        - http_browser_java_enabled
        - http_browser_java_script_enabled
        - http_browser_language
        - http_browser_time_difference
        - http_accept_browser_value
        - http_accept_content
    OrderInfoDto:
      type: object
      properties:
        currency:
          type: string
          example: BRL
        total_amount:
          type: integer
          minimum: 1
          example: 1050
        bill_to:
          $ref: '#/components/schemas/BillToDto'
      required:
        - currency
        - total_amount
        - bill_to
    CardInfoDto:
      type: object
      properties:
        number:
          type: string
          example: '4111111111111111'
        expiration_month:
          type: string
          minLength: 2
          maxLength: 2
          example: '12'
        expiration_year:
          type: string
          minLength: 4
          maxLength: 4
          example: '2029'
      required:
        - number
        - expiration_month
        - expiration_year
    AuthenticationsDataDto:
      type: object
      properties:
        status:
          type: string
          example: PENDING_AUTHENTICATION
        consumerAuthenticationInformation:
          $ref: '#/components/schemas/ConsumerAuthenticationInfoDto'
    BillToDto:
      type: object
      properties:
        firstName:
          type: string
          example: João
        lastName:
          type: string
          example: da Silva
        email:
          type: string
          example: joao@exemplo.com
        locality:
          type: string
          example: São Paulo
        administrativeArea:
          type: string
          example: SP
        country:
          type: string
          example: BR
        address1:
          type: string
          example: Av. Paulista, 1000
        address2:
          type: string
          example: Conjunto 101
        postalCode:
          type: string
          example: '01310100'
        homePhone:
          type: string
          example: '1132109323'
        mobilePhone:
          type: string
          example: '11999001122'
    ConsumerAuthenticationInfoDto:
      type: object
      properties:
        acsUrl:
          type: string
          example: https://acs.example.com/authenticate
        pareq:
          type: string
          example: eJxVUstuwjAQ/BXLd...
        authenticationTransactionId:
          type: string
          example: f1eef51e-de4e-4274-8757-7ff19e719501
  securitySchemes:
    client-id:
      type: apiKey
      in: header
      name: client-id
    client-secret:
      type: apiKey
      in: header
      name: client-secret

````