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

# Listar vendas rápidas

> Lista paginada das cobranças individuais — as Sessions sem Link.

`GET /checkout/charges`

Faz parte do recurso [Vendas rápidas](/pt-BR/checkout/charges) — a relação com Link e Session está
lá.

Devolve **só as Sessions sem `linkId`**, da mais recente para a mais antiga, em páginas de 20 por
padrão (máximo 100). Os filtros são opcionais e se somam: quem envia mais de um recebe só as
cobranças que atendem a todos.

<Note>
  **É a mesma coleção de [`GET /checkout/sessions`](/pt-BR/checkout/links/session-list), com o filtro
  já embutido.** Lá aparecem as compras de Link e as avulsas juntas; aqui, só as avulsas. Se você
  precisa das duas, use a listagem de Sessions.
</Note>

<Note>
  **`status` aceita mais de um valor**, separados por vírgula: `?status=paid,failed`. Um valor fora
  da lista responde `400` com os aceitos.
</Note>

<Note>
  **As datas do período filtram a criação**, não o pagamento, e vão em ISO 8601 com fuso
  (`2026-08-01T00:00:00-03:00`). Para saber quando a cobrança foi paga, o caminho é a transação
  ligada pelo `transactionId`.
</Note>

## Exemplo

```bash theme={null}
curl -G https://api.sandbox.z2pay.com/v1/checkout/charges \
  -H "x-api-key: SUA_CHAVE_DE_SANDBOX" \
  -d status=paid \
  -d page=1 \
  -d limit=20
```

```json Resposta 200 theme={null}
{
  "data": [
    {
      "id": "cs_50b0abc54b632e7c57de3a73815413ace1d545dcd16da95c",
      "linkId": null,
      "status": "paid",
      "amount": 30000,
      "currency": "BRL",
      "transactionId": "txn_ebgsvfsb4151nmbgvj4sek6ol",
      "createdAt": "2026-06-24T12:00:00.000Z",
      "expiresAt": "2026-06-25T12:00:00.000Z"
    }
  ],
  "pagination": { "page": 1, "limit": 20, "total": 8, "totalPages": 1 }
}
```


## OpenAPI

````yaml openapi/checkout.json GET /checkout/charges
openapi: 3.0.3
info:
  title: Z2Pay Checkout API
  version: 1.0.0
  description: >-
    API pública dedicada do Checkout. Autenticação via header x-api-key com a
    API key unificada da conta (z2_{live|test}_{sk|pk}_...). Endpoints privados
    exigem uma key secret (sk); endpoints públicos aceitam a key publishable
    (pk) consumida pelo frontend do comprador.
servers:
  - url: https://api.sandbox.z2pay.com/v1
    description: Sandbox
  - url: https://api.z2pay.com/v1
    description: Produção
security: []
tags:
  - name: Checkout Links
    description: Checkout Links (integração API via sk_)
  - name: Checkout Sessions
    description: Checkout Sessions (integração API via sk_)
  - name: Vendas rápidas
    description: Cobrança individual sem Link — Sessions ad-hoc criadas com a chave secreta
paths:
  /checkout/charges:
    get:
      tags:
        - Vendas rápidas
      summary: Listar vendas rápidas
      description: >-
        Lista paginada das vendas rápidas da conta — as Sessions sem `linkId`.
        As que nasceram de um Link ficam de fora; para essas, use `GET
        /checkout/sessions`.
      operationId: CheckoutChargeApiController_list
      parameters:
        - name: page
          in: query
          required: false
          description: 'Página da listagem. Padrão: 1.'
          schema:
            type: integer
            minimum: 1
            default: 1
            description: 'Página da listagem. Padrão: 1.'
        - name: limit
          in: query
          required: false
          description: 'Itens por página. Padrão: 20. Máximo: 100.'
          schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 20
            description: 'Itens por página. Padrão: 20. Máximo: 100.'
        - name: status
          in: query
          required: false
          description: >-
            Situação da venda rápida. Aceita vários valores, separados por
            vírgula ou repetindo o parâmetro. Um valor inválido responde 400 com
            a lista dos aceitos.
          schema:
            type: array
            items:
              type: string
              enum:
                - created
                - opened
                - filling
                - paying
                - partially_paid
                - paid
                - failed
                - abandoned
                - expired
                - canceled
            description: >-
              Situação da venda rápida. Aceita vários valores, separados por
              vírgula ou repetindo o parâmetro. Um valor inválido responde 400
              com a lista dos aceitos.
        - name: transactionId
          in: query
          required: false
          description: >-
            Transação vinculada. Correspondência **parcial**: `4151` encontra
            `txn_ebgsvfsb4151nmbgvj4sek6ol`.
          schema:
            type: string
            nullable: true
            description: >-
              Transação vinculada. Correspondência **parcial**: `4151` encontra
              `txn_ebgsvfsb4151nmbgvj4sek6ol`.
        - name: description
          in: query
          required: false
          description: >-
            Descrição da venda rápida. Correspondência **parcial**, sem
            diferenciar maiúsculas.
          schema:
            type: string
            nullable: true
            description: >-
              Descrição da venda rápida. Correspondência **parcial**, sem
              diferenciar maiúsculas.
        - name: startDate
          in: query
          required: false
          description: >-
            Vendas criadas a partir desta data, em ISO 8601 com fuso. Filtra a
            criação, não o pagamento.
          schema:
            type: string
            format: date-time
            nullable: true
            description: >-
              Vendas criadas a partir desta data, em ISO 8601 com fuso. Filtra a
              criação, não o pagamento.
        - name: endDate
          in: query
          required: false
          description: >-
            Vendas criadas até esta data, em ISO 8601 com fuso. Filtra a
            criação, não o pagamento.
          schema:
            type: string
            format: date-time
            nullable: true
            description: >-
              Vendas criadas até esta data, em ISO 8601 com fuso. Filtra a
              criação, não o pagamento.
      responses:
        '200':
          description: Lista paginada de vendas rápidas
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                          description: Identificador único do registro.
                        linkId:
                          type: string
                          nullable: true
                          description: >-
                            Identificador do link de checkout que originou o
                            registro; nulo em sessões ad-hoc.
                        status:
                          type: string
                          description: Estado atual do registro.
                        mode:
                          type: string
                          description: >-
                            Modo do checkout: 'payment' (pagamento único) ou
                            'subscription' (assinatura).
                        currency:
                          type: string
                          description: 'Moeda no padrão ISO 4217 (ex.: BRL).'
                        locale:
                          type: string
                          description: 'Idioma do checkout (ex.: pt-BR, en-US, es-ES).'
                        config:
                          type: object
                          description: >-
                            Snapshot da configuração do checkout (formas de
                            pagamento, itens e personalização visual).
                        customer:
                          type: object
                          nullable: true
                          description: >-
                            Dados do comprador (nome, e-mail, documento e demais
                            informações).
                        customFieldValues:
                          type: object
                          nullable: true
                          description: >-
                            Valores preenchidos nos campos personalizados,
                            indexados pela key de cada campo.
                        paymentMethodSelected:
                          type: string
                          nullable: true
                          description: >-
                            Forma de pagamento selecionada pelo comprador na
                            sessão (ex.: credit_card, pix, boleto).
                        subtotal:
                          type: integer
                          description: Soma dos itens antes dos descontos, em centavos.
                        discountTotal:
                          type: integer
                          description: Total de descontos aplicados, em centavos.
                        amount:
                          type: integer
                          description: Valor total a ser cobrado, em centavos.
                        discounts:
                          type: array
                          items:
                            type: object
                          nullable: true
                          description: Descontos aplicados ao valor da sessão.
                        paymentAttempts:
                          type: integer
                          description: >-
                            Quantidade de tentativas de pagamento realizadas na
                            sessão.
                        transactionId:
                          type: string
                          nullable: true
                          description: >-
                            Identificador da transação gerada pelo pagamento da
                            sessão; nulo até haver pagamento.
                        subscriptionId:
                          type: string
                          nullable: true
                          description: >-
                            Identificador da assinatura criada a partir da
                            sessão; nulo até a ativação.
                        metadata:
                          type: object
                          nullable: true
                          description: >-
                            Metadados livres (pares chave-valor) para uso do
                            integrador; não afeta o processamento.
                        createdAt:
                          type: string
                          format: date-time
                          description: Data e hora de criação do registro (ISO 8601).
                        updatedAt:
                          type: string
                          format: date-time
                          description: >-
                            Data e hora da última atualização do registro (ISO
                            8601).
                        openedAt:
                          type: string
                          format: date-time
                          nullable: true
                          description: >-
                            Data e hora em que a sessão foi aberta pelo
                            comprador (ISO 8601); nula se ainda não aberta.
                        paidAt:
                          type: string
                          format: date-time
                          nullable: true
                          description: >-
                            Data e hora em que o pagamento foi confirmado (ISO
                            8601); nula se não pago.
                        canceledAt:
                          type: string
                          format: date-time
                          nullable: true
                          description: >-
                            Data e hora do cancelamento (ISO 8601); nula se não
                            cancelado.
                        expiresAt:
                          type: string
                          format: date-time
                          description: Data e hora de expiração (ISO 8601).
                        url:
                          type: string
                          description: >-
                            URL pública do checkout para o comprador finalizar o
                            pagamento.
                    description: Lista de registros retornados nesta página.
                  pagination:
                    type: object
                    properties:
                      page:
                        type: integer
                        description: Página atual retornada.
                      limit:
                        type: integer
                        description: Quantidade de itens por página.
                      total:
                        type: integer
                        description: Total de itens que atendem ao filtro.
                      totalPages:
                        type: integer
                        description: Total de páginas disponíveis.
                    description: >-
                      Metadados de paginação do resultado (página, limite e
                      totais).
              example:
                data:
                  - id: cs_02f232c4dcf8eec4c29e0f3748476d1339b63c0e7ffab1dc
                    linkId: null
                    status: created
                    mode: payment
                    currency: BRL
                    locale: pt-BR
                    config:
                      paymentMethods:
                        card:
                          enabled: true
                          installments:
                            maxInstallments: 12
                            freeInstallments: 3
                        pix:
                          enabled: true
                          expiresIn: 3600
                        boleto:
                          enabled: true
                          dueDateDays: 3
                      description: Curso de Marketing Digital
                    customer:
                      name: Maria Souza
                      email: maria.souza@example.com
                      document: '12345678909'
                      documentType: cpf
                      phone: '+5511988887777'
                    customFieldValues: null
                    paymentMethodSelected: null
                    subtotal: 19900
                    discountTotal: 0
                    amount: 19900
                    discounts: []
                    paymentAttempts: 0
                    transactionId: null
                    subscriptionId: null
                    metadata: null
                    createdAt: '2025-06-29T13:45:30.000Z'
                    updatedAt: '2025-06-29T13:45:30.000Z'
                    openedAt: null
                    paidAt: null
                    canceledAt: null
                    expiresAt: '2025-06-30T13:45:30.000Z'
                    url: >-
                      https://checkout.z2pay.com.br/c/s/cs_02f232c4dcf8eec4c29e0f3748476d1339b63c0e7ffab1dc
                pagination:
                  page: 1
                  limit: 20
                  total: 1
                  totalPages: 1
        '400':
          description: >-
            Requisição inválida — algum parâmetro ou campo do corpo não passou
            na validação
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                        description: >-
                          Identificador estável do erro. É por ele que você deve
                          ramificar, não pela mensagem.
                      message:
                        type: string
                        description: >-
                          Descrição legível. Pode mudar sem aviso e não deve ser
                          usada em condicional.
                      issues:
                        type: array
                        description: >-
                          Um item por campo rejeitado. Nunca vem vazio: se há
                          400 de validação, há pelo menos um.
                        items:
                          type: object
                          properties:
                            path:
                              type: string
                              description: >-
                                Campo que falhou. Vem vazio quando o erro é do
                                corpo como um todo.
                            message:
                              type: string
                              description: O que há de errado com esse campo.
              example:
                error:
                  code: VALIDATION_ERROR
                  message: Validation failed
                  issues:
                    - path: status
                      message: >-
                        Status inválido. Valores aceitos: pending,
                        waiting_payment, paid, refused, canceled, refunded
                    - path: startDate
                      message: >-
                        Data deve ser ISO 8601 com timezone (ex.:
                        2026-06-24T00:00:00Z)
        '401':
          description: Chave de API ausente, malformada ou inválida
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                        description: >-
                          Identificador estável do erro. É por ele que você deve
                          ramificar, não pela mensagem.
                      message:
                        type: string
                        description: >-
                          Descrição legível. Pode mudar sem aviso e não deve ser
                          usada em condicional.
              example:
                error:
                  code: UNAUTHORIZED
                  message: Invalid API key
        '403':
          description: >-
            A chave é válida, mas não tem permissão para esta operação — é o
            caso de usar uma publishable key (pk) onde a rota exige uma secret
            key (sk)
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                        description: >-
                          Identificador estável do erro. É por ele que você deve
                          ramificar, não pela mensagem.
                      message:
                        type: string
                        description: >-
                          Descrição legível. Pode mudar sem aviso e não deve ser
                          usada em condicional.
              example:
                error:
                  code: FORBIDDEN
                  message: Forbidden — insufficient permissions
      security:
        - apiKey: []
components:
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        API key unificada (z2_{live|test}_{sk|pk}_...) — secret (sk) para
        integração backend, publishable (pk) para uso no frontend público

````