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

# Execute transaction

> Executes a transaction with one or more postings to move funds between ledger accounts. Returns 202 Accepted when the request is queued for processing.



## OpenAPI

````yaml post /v1/transactions
openapi: 3.0.3
info:
  title: Ledger Client API
  version: 1.0.0
  description: API for ledger operations - parties, accounts, transactions
servers: []
security: []
tags:
  - name: Account Statements
    description: Retrieve account transaction history
  - name: Accounts
    description: Account management operations
  - name: Open Banking - Accounts
    description: PSD2 Account Information Service (AIS) - Account endpoints
  - name: Open Banking - Funds Confirmation
    description: PSD2 Confirmation of Funds Service (PIIS)
  - name: Open Banking - Payments
    description: PSD2 Payment Initiation Service (PIS)
  - name: Open Banking - Transactions
    description: PSD2 Account Information Service (AIS) - Transaction endpoints
  - name: Parties
    description: Party management operations
  - name: Payments
    description: Payment operations
  - name: Transaction Postings
    description: Retrieve transaction postings
  - name: Transactions
    description: Transaction execution operations
paths:
  /v1/transactions:
    post:
      tags:
        - Transactions
      summary: Execute transaction
      description: Executes a transaction with the specified postings
      parameters:
        - description: >-
            Client-provided idempotency key. UUID v4 suggested, max 255
            characters.
          example: 550e8400-e29b-41d4-a716-446655440000
          required: true
          name: Idempotency-Key
          in: header
          schema:
            maxLength: 255
            pattern: \S
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ExecuteTransactionRequest'
        required: true
      responses:
        '202':
          description: Transaction execution request accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AcceptedResponse'
        '400':
          description: >-
            Validation failed. See [Error Handling](/ledger/error-handling) for
            the response shape.
          content:
            application/problem+json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/ValidationProblem'
                  - $ref: '#/components/schemas/Problem'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
components:
  schemas:
    ExecuteTransactionRequest:
      description: Request to execute a transaction with one or more postings
      required:
        - referenceId
        - postings
      type: object
      properties:
        referenceId:
          description: >-
            Reference identifier linking transaction to its origin. For
            payment-originated transactions, this contains the payment
            identification. Used to trace transactions back to their source
            system.
          pattern: \S
          type: string
          example: PAY-123456
        referenceSource:
          description: Source system for the reference identifier
          default: CLIENT
          enum:
            - CLIENT
            - PLAIS
          type: string
          allOf:
            - $ref: '#/components/schemas/ReferenceSource'
          example: CLIENT
        postings:
          description: List of postings (debits and credits) that make up the transaction
          maxItems: 100
          minItems: 1
          type: array
          items:
            $ref: '#/components/schemas/PostingRequest'
    AcceptedResponse:
      description: Response for accepted asynchronous requests
      type: object
      properties:
        correlationId:
          description: Correlation identifier for tracking the request through events
          type: string
          example: 550e8400-e29b-41d4-a716-446655440000
    ValidationProblem:
      description: >-
        RFC 9457 problem details with a `violations` array describing each
        failed constraint.
      required:
        - status
        - title
        - instance
        - violations
      type: object
      properties:
        status:
          format: int32
          description: HTTP status code
          type: integer
          example: 400
        title:
          description: Short, human-readable summary of the problem type
          type: string
        instance:
          description: URI reference identifying this occurrence of the problem
          type: string
        violations:
          description: List of validation constraint violations
          type: array
          items:
            $ref: '#/components/schemas/Violation'
    Problem:
      description: >-
        RFC 9457 problem details. See [Error Handling](/ledger/error-handling)
        for the response shape.
      required:
        - status
        - title
        - instance
      type: object
      properties:
        status:
          format: int32
          description: HTTP status code
          type: integer
          example: 500
        title:
          description: Short, human-readable summary of the problem type
          type: string
        instance:
          description: URI reference identifying this occurrence of the problem
          type: string
        detail:
          description: >-
            Human-readable explanation specific to this occurrence of the
            problem
          type: string
          nullable: true
    ReferenceSource:
      description: Supported reference sources
      enum:
        - CLIENT
        - PLAIS
      type: string
    PostingRequest:
      description: >-
        A single posting representing a movement of funds between two ledger
        accounts
      required:
        - source
        - destination
        - currency
        - details
      type: object
      properties:
        source:
          description: >-
            Address of the source ledger account from which funds are debited.
            Format: CUSTOMER:{partyId}:{accountId}:CURRENT/HOLDING or
            INTERNAL:CLEARING:INBOUND/OUTBOUND or INTERNAL:REVENUE:FEE or
            INTERNAL:SUSPENSE or world
          pattern: >-
            CUSTOMER:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}:(CURRENT|HOLDING)|INTERNAL:CLEARING:(INBOUND|OUTBOUND)|INTERNAL:REVENUE:FEE|INTERNAL:SUSPENSE|world
          type: string
          example: >-
            CUSTOMER:019bdb2a-960f-789d-8955-21720e6cdeee:019bdb2a-960f-789d-8955-21720e6cdeed:CURRENT
        destination:
          description: >-
            Address of the destination ledger account to which funds are
            credited. Format: CUSTOMER:{partyId}:{accountId}:CURRENT/HOLDING or
            INTERNAL:CLEARING:INBOUND/OUTBOUND or INTERNAL:REVENUE:FEE or
            INTERNAL:SUSPENSE or world
          pattern: >-
            CUSTOMER:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}:(CURRENT|HOLDING)|INTERNAL:CLEARING:(INBOUND|OUTBOUND)|INTERNAL:REVENUE:FEE|INTERNAL:SUSPENSE|world
          type: string
          example: INTERNAL:REVENUE:FEE
        amount:
          description: >-
            Transaction amount in minor units (cents). Only positive numerical
            values allowed.
          multipleOf: 1
          minimum: 0
          exclusiveMinimum: true
          type: number
          example: 10000
        currency:
          description: Currency code in ISO 4217 standard
          pattern: \S
          type: string
          example: EUR
        type:
          description: Type of posting
          default: CREDIT_TRANSFER
          enum:
            - FEES
            - CREDIT_TRANSFER
          type: string
          example: CREDIT_TRANSFER
          nullable: true
        details:
          description: >-
            Free-text reason or description provided by the
            client/party/counterparty when initiating the transaction
          pattern: \S
          type: string
          example: 'Payment for invoice #67'
    Violation:
      description: Single validation constraint violation
      required:
        - field
        - in
        - message
      type: object
      properties:
        field:
          description: Name of the field that failed validation
          type: string
        in:
          description: Part of the HTTP request where the violation occurred
          enum:
            - query
            - path
            - header
            - form
            - body
          type: string
        message:
          description: Human-readable description of the violation
          type: string

````