TrueLayer Merchant Accounts API

Merchant account management and balance

OpenAPI Specification

truelayer-merchant-accounts-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: TrueLayer Payments Mandates Merchant Accounts API
  description: The TrueLayer Payments API v3 enables applications to create and manage open banking payments, payouts, refunds, and variable recurring payment mandates across the UK and EU. TrueLayer connects to 69+ banks and provides a unified interface for instant bank payments using open banking rails. Authentication requires signed requests with private keys and OAuth2 access tokens.
  version: 3.0.0
  contact:
    name: TrueLayer Support
    url: https://docs.truelayer.com
  termsOfService: https://truelayer.com/legal/
servers:
- url: https://api.truelayer.com
  description: TrueLayer Production API
- url: https://api.truelayer-sandbox.com
  description: TrueLayer Sandbox (testing)
security:
- BearerAuth: []
tags:
- name: Merchant Accounts
  description: Merchant account management and balance
paths:
  /v3/merchant-accounts:
    get:
      summary: List Merchant Accounts
      description: Returns all merchant accounts for the integration.
      operationId: listMerchantAccounts
      tags:
      - Merchant Accounts
      responses:
        '200':
          description: List of merchant accounts
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/MerchantAccount'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /v3/merchant-accounts/{id}:
    get:
      summary: Get Merchant Account
      description: Retrieve a merchant account and its current balance.
      operationId: getMerchantAccount
      tags:
      - Merchant Accounts
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: Merchant account details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MerchantAccount'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
  /v3/merchant-accounts/{id}/transactions:
    get:
      summary: List Merchant Account Transactions
      description: Returns transactions for a merchant account.
      operationId: listMerchantAccountTransactions
      tags:
      - Merchant Accounts
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
          format: uuid
      - name: from
        in: query
        description: Start date-time filter (ISO 8601)
        schema:
          type: string
          format: date-time
      - name: to
        in: query
        description: End date-time filter (ISO 8601)
        schema:
          type: string
          format: date-time
      - name: cursor
        in: query
        description: Pagination cursor
        schema:
          type: string
      responses:
        '200':
          description: Merchant account transactions
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                          format: uuid
                        type:
                          type: string
                          enum:
                          - payment
                          - payout
                          - refund
                        amount_in_minor:
                          type: integer
                        currency:
                          type: string
                        status:
                          type: string
                        created_at:
                          type: string
                          format: date-time
                  next_cursor:
                    type: string
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
components:
  schemas:
    MerchantAccount:
      type: object
      properties:
        id:
          type: string
          format: uuid
        currency:
          type: string
        account_identifiers:
          type: array
          items:
            type: object
            properties:
              type:
                type: string
              sort_code:
                type: string
              account_number:
                type: string
              iban:
                type: string
        available_balance_in_minor:
          type: integer
          description: Available balance in minor currency units
        current_balance_in_minor:
          type: integer
          description: Current balance including pending settlements
  responses:
    Unauthorized:
      description: Unauthorized - invalid token or missing signature
      content:
        application/json:
          schema:
            type: object
            properties:
              type:
                type: string
              title:
                type: string
    NotFound:
      description: Resource not found
      content:
        application/json:
          schema:
            type: object
            properties:
              type:
                type: string
              title:
                type: string
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: OAuth2 access token with payments scope