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

# Listar transacciones

> Las transacciones de tus cuentas bancarias. Sin parámetros regresa todas, de la más reciente a la más vieja, paginadas. Para sincronizar usa `sort=updated_at&updated_since=…`.



## OpenAPI

````yaml GET /transactions
openapi: 3.0.0
info:
  title: Tesoria API
  description: >-
    API pública de Tesoria. Solo lectura: tus **transacciones** bancarias
    (`transactions`), tus **cuentas por pagar** (`payables`), tus **cuentas
    bancarias** con su saldo (`accounts`), tus **contactos** (`contacts`) y tus
    **categorías** (`categories`).


    **Autenticación:** `Authorization: Bearer tsr_live_…` (una llave por
    empresa; pídela a soporte@tesoria.ai).


    **Paginación:** `limit` (default 50, máx 200) y `cursor` → `{ data,
    has_more, next_cursor }`.


    **Sincronizar:** `sort=updated_at&updated_since=<última corrida>` y sigue
    `next_cursor` hasta `has_more: false`.


    **Errores:** `{ "error": { "code", "message", "details" } }` con
    `unauthorized` (401), `forbidden_scope` (403), `not_found` (404),
    `invalid_parameter` (400), `rate_limited` (429, respeta `Retry-After`),
    `internal_error` (500).


    **Límites:** 600 peticiones por minuto por llave.


    **Versionado:** las rutas no llevan versión y la URL no cambia. Solo hay
    cambios aditivos (campos, filtros o endpoints nuevos). Si algún día hay un
    cambio incompatible, se pedirá con el header opcional `Tesoria-Version`;
    quien no lo mande conserva el comportamiento actual.


    **Soporte:** soporte@tesoria.ai
  version: '2026-10-01'
  contact: {}
servers:
  - url: https://api.tesoria.ai
security: []
tags: []
paths:
  /transactions:
    get:
      tags:
        - Transacciones
      summary: Listar transacciones
      description: >-
        Las transacciones de tus cuentas bancarias. Sin parámetros regresa
        todas, de la más reciente a la más vieja, paginadas. Para sincronizar
        usa `sort=updated_at&updated_since=…`.
      operationId: transactions_list
      parameters:
        - name: limit
          required: false
          in: query
          schema:
            minimum: 1
            maximum: 200
            default: 50
            type: number
        - name: cursor
          required: false
          in: query
          description: El `next_cursor` de la página anterior.
          schema:
            type: string
        - name: updated_since
          required: false
          in: query
          description: >-
            Solo lo creado o modificado desde este instante (ISO-8601 con zona).
            Para sincronizar, combínalo con `sort=updated_at`.
          schema:
            example: '2026-09-30T00:00:00-06:00'
            type: string
        - name: sort
          required: false
          in: query
          schema:
            default: date
            type: string
            enum:
              - date
              - updated_at
        - name: date_from
          required: false
          in: query
          description: Día inclusivo (CDMX).
          schema:
            example: '2026-09-01'
            type: string
        - name: date_to
          required: false
          in: query
          description: Día inclusivo (CDMX).
          schema:
            example: '2026-09-30'
            type: string
        - name: account_id
          required: false
          in: query
          schema:
            type: string
        - name: type
          required: false
          in: query
          schema:
            type: string
            enum:
              - income
              - expense
        - name: contact_id
          required: false
          in: query
          schema:
            type: string
        - name: contact_external_id
          required: false
          in: query
          description: Tu id del contacto (el `external_id`).
          schema:
            type: string
        - name: category_id
          required: false
          in: query
          schema:
            type: string
        - name: reconciled
          required: false
          in: query
          schema:
            type: string
            enum:
              - 'true'
              - 'false'
        - name: amount_min
          required: false
          in: query
          schema:
            type: number
        - name: amount_max
          required: false
          in: query
          schema:
            type: number
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                example:
                  data:
                    - id: 66fb1c2e9d1a4b0012ab34cd
                      date: '2026-09-30'
                      type: expense
                      amount: 6942.5
                      currency: MXN
                      description: PKG 1234 29SEP
                      account:
                        id: 66a01b2c3d4e5f0012ab0001
                        name: Cuenta STP
                        bank: STP
                        clabe: '646180000000000001'
                      contact:
                        id: 66a01b2c3d4e5f0012ab0002
                        name: Estacionamientos del Centro SA de CV
                        rfc: ECE010101AB1
                        external_id: '1234'
                      categories:
                        - id: 66a01b2c3d4e5f0012ab0003
                          name: Pagos a estacionamientos
                          amount: 6942.5
                      reconciled: true
                      payables:
                        - id: 66fa0e1f2a3b4c0012ab0004
                          amount: 6942.5
                          external_ids:
                            - 1234|2026-09-29 00:00:00|2026-09-29 23:59:59
                      spei:
                        tracking_key: TES66FA0E1F2A3B4C0012AB0004A
                        operation_date: '2026-09-30'
                        sender:
                          clabe: '646180000000000001'
                          bank_code: '90646'
                          bank_name: STP
                          name: Mi Empresa SA de CV
                        beneficiary:
                          clabe: '012180000000000002'
                          bank_code: '40012'
                          bank_name: BBVA MEXICO
                          name: Estacionamientos del Centro SA de CV
                        numeric_reference: 300926
                        cep:
                          available: true
                          url: >-
                            https://www.banxico.org.mx/cep/go?i=90646&s=20210302&d=…
                      created_at: '2026-09-30T10:15:02.000-06:00'
                      updated_at: '2026-09-30T13:40:11.000-06:00'
                  has_more: true
                  next_cursor: eyJrIjoi…
        '400':
          description: '`invalid_parameter`'
        '401':
          description: '`unauthorized` — falta la llave, no existe o está revocada.'
        '403':
          description: '`forbidden_scope` — la llave no tiene el scope de la ruta.'
        '429':
          description: >-
            `rate_limited` — más de 600 peticiones por minuto; respeta
            `Retry-After`.
      security:
        - api-key: []
components:
  securitySchemes:
    api-key:
      scheme: bearer
      bearerFormat: JWT
      type: http
      description: tsr_live_…

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.