> ## Documentation Index
> Fetch the complete documentation index at: https://developer.utgl.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Initiate Transaction

> **Initiates a Transaction Verification Process**

Creates a transaction verification request that requires **`cardId`**, **`amount`**, **`currency`**, and **`description`**. Upon successful validation, a one-time verification code (OTP) is sent to the cardholder.

The cardholder must enter this OTP in your platform to authorize the transaction. 

To complete the transaction, you must submit this verification code along with identical transaction parameters to the Authorize Transaction endpoint (/partner-connect/transactions/authorize).

This two-step verification process ensures secure transaction processing and cardholder consent.




## OpenAPI

````yaml /merchant/partner-connect/partner-connect.yaml post /partner-connect/transactions/verify
openapi: 3.0.2
info:
  title: Partner Connect API Reference
  description: >
    # Partner Connect API Documentation


    Welcome to the Partner Connect API documentation. This API allows external
    partners (merchants, service providers) to integrate with our card services
    for binding customer cards and processing transactions.


    ## Key Features:

    - Secure Card Binding: Link customer payment cards to your system securely.

    - Transaction Processing: Authorize, capture, void, and refund payments
    using bound cards.


    ## Notes for API Integration

    - **Authentication:** Requests must be authenticated using either HTTP Basic
    Auth or Bearer Token (JWT), as specified in the `securitySchemes`.

    - **Error Handling:** The API uses standard HTTP status codes. Specific
    error details are provided in the response body with `code` and `message`
    fields. Refer to the `components/schemas/ErrorPartnerConnect...` definitions
    and the specific endpoint `responses` for details on possible errors.

    - **Idempotency:** Where applicable (e.g., transaction initiation), consider
    implementing idempotency checks on your side using unique request
    identifiers if needed, although the API itself may handle idempotency for
    certain operations like binding initiation.
  version: '1.0'
servers:
  - url: tbc
security:
  - Basic: []
  - Bearer: []
tags:
  - name: Partner Connect
    description: >-
      Endpoints for integrating partner systems with card services, including
      card binding and transaction processing.
paths:
  /partner-connect/transactions/verify:
    post:
      tags:
        - Transactions
      summary: Initiate Transaction
      description: >
        **Initiates a Transaction Verification Process**


        Creates a transaction verification request that requires **`cardId`**,
        **`amount`**, **`currency`**, and **`description`**. Upon successful
        validation, a one-time verification code (OTP) is sent to the
        cardholder.


        The cardholder must enter this OTP in your platform to authorize the
        transaction. 


        To complete the transaction, you must submit this verification code
        along with identical transaction parameters to the Authorize Transaction
        endpoint (/partner-connect/transactions/authorize).


        This two-step verification process ensures secure transaction processing
        and cardholder consent.
      requestBody:
        required: true
        description: >-
          Requires the `cardId` (obtained from successful binding) and basic
          transaction details (`amount`, `currency`, `description`) in the
          request body.
        content:
          application/json:
            schema:
              type: object
              required:
                - cardId
                - amount
                - currency
                - description
              properties:
                cardId:
                  type: string
                  format: uuid
                  description: Unique identifier of the card.
                amount:
                  type: number
                  format: float
                  minimum: 0.01
                  multipleOf: 0.01
                  description: Transaction amount being verified.
                  example: 100
                currency:
                  description: Currency code (ISO 4217) of the transaction amount.
                  type: string
                  minLength: 3
                  maxLength: 3
                  example: USD
                description:
                  type: string
                  description: Verification description.
                  example: Check details
      responses:
        '200':
          description: >-
            Transaction parameters verified successfully. Indicates the provided
            `cardId` is valid and the basic parameters are acceptable for
            potentially proceeding with a transaction.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    description: Always `true` for a successful verification response.
                    type: boolean
                    example: true
                required:
                  - success
        '400':
          description: >-
            Bad Request. The provided `cardId` is syntactically invalid or does
            not correspond to a known, bound card (`INVALID_CARD_ID`), or other
            parameters like `amount` or `currency` are invalid/missing, or
            decryption failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorPartnerConnectInvalidCard'
        '500':
          $ref: '#/components/responses/InternalServerError'
components:
  schemas:
    ErrorPartnerConnectInvalidCard:
      description: |
        The provided **Card ID** is either invalid or not bound.
        Ensure it is a valid **UUID** linked to a bound card.
      type: object
      properties:
        code:
          type: string
          description: Error code, i.e. `INVALID_CARD_ID`.
          default: INVALID_CARD_ID
        message:
          type: string
          description: Human-readable error explanation.
          default: Invalid Card ID.
  responses:
    InternalServerError:
      description: >-
        Internal Server Error. A server error occurred. Please try again later;
        if the problem persists, contact support.
      content:
        application/json:
          schema:
            type: object
            properties:
              code:
                type: string
                description: Error code, i.e. `INTERNAL_SERVER_ERROR`.
                default: INTERNAL_SERVER_ERROR
              message:
                type: string
                description: A brief message indicating a server-side error.
                default: Your request could not be processed due to a server error.
  securitySchemes:
    Basic:
      type: http
      scheme: basic
    Bearer:
      type: http
      scheme: bearer
      bearerFormat: JWT

````