> ## 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 cuentas por pagar

> Lo mismo que la pantalla Cuentas por pagar: `to_schedule` (Por programar), `scheduled` (Programado) y `paid` (Pagado). Sin parámetros regresa todo, por vencimiento.



## OpenAPI

````yaml GET /payables
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:
  /payables:
    get:
      tags:
        - Cuentas por pagar
      summary: Listar cuentas por pagar
      description: >-
        Lo mismo que la pantalla Cuentas por pagar: `to_schedule` (Por
        programar), `scheduled` (Programado) y `paid` (Pagado). Sin parámetros
        regresa todo, por vencimiento.
      operationId: payables_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: due_date
            type: string
            enum:
              - due_date
              - updated_at
        - name: status
          required: false
          in: query
          schema:
            type: string
            enum:
              - to_schedule
              - scheduled
              - paid
        - name: due_from
          required: false
          in: query
          schema:
            example: '2026-10-01'
            type: string
        - name: due_to
          required: false
          in: query
          schema:
            example: '2026-10-31'
            type: string
        - 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: external_id
          required: false
          in: query
          description: >-
            Tu identificador de lo que mandaste (integración:
            `parking_id|from|to`, el `external_id` del acuse). Regresa la cuenta
            por pagar que lo incluya en `external_ids`.
          schema:
            example: 1234|2026-09-29 00:00:00|2026-09-29 23:59:59
            type: string
        - name: account_id
          required: false
          in: query
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                example:
                  data:
                    - id: 66fa0e1f2a3b4c0012ab0004
                      external_ids:
                        - 1234|2026-09-29 00:00:00|2026-09-29 23:59:59
                      description: Estacionamiento Centro · 29 sep
                      contact:
                        id: 66a01b2c3d4e5f0012ab0002
                        name: Estacionamientos del Centro SA de CV
                        rfc: ECE010101AB1
                        external_id: '1234'
                      amount: 6942.5
                      currency: MXN
                      due_date: '2026-09-30'
                      status: paid
                      scheduled_for: '2026-09-30'
                      account:
                        id: 66a01b2c3d4e5f0012ab0001
                        name: Cuenta STP
                        bank: STP
                        clabe: '646180000000000001'
                      category:
                        id: 66a01b2c3d4e5f0012ab0003
                        name: Pagos a estacionamientos
                      source: integration
                      invoice: null
                      transactions:
                        - id: 66fb1c2e9d1a4b0012ab34cd
                          amount: 6942.5
                          date: '2026-09-30'
                      created_at: '2026-09-29T21:02:44.000-06:00'
                      updated_at: '2026-09-30T13:40:11.000-06:00'
                  has_more: false
                  next_cursor: null
        '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.