GET/api/v1/api-vouchers

    Lista pedidos com vouchers agrupados por cliente e lotes. Marca como sincronizado automaticamente.

    Sincronização Automática
    Por padrão, os vouchers retornados são automaticamente marcados como sincronizados para sua API Key. Use ?marcar_sincronizado=false para apenas consultar sem marcar.
    IDs Fixos para Integração Externa
    Cada lote na resposta inclui identificadores que representam o produto cadastrado, não a venda individual:
    • ingresso_id - ID do tipo de ingresso (ex: "Pacote Day Use"). Todos os lotes do mesmo ingresso compartilham este ID.
    • lote_mestre_id - ID da variação/lote (ex: "Adulto COM Almoço"). Identifica a variação específica dentro do ingresso.
    • categoria - Tipo público: adulto, infantil ou outros
    • nome_lote - Nome da variação do ingresso
    • valor_unitario - Preço por ingresso do lote
    • subtotal - Valor total do lote (valor_unitario × quantidade)
    Esses IDs são sempre os mesmos para o mesmo produto, independente do pedido, do cliente ou da data de uso. Por exemplo, se dois clientes diferentes comprarem "Adulto COM Almoço" para datas diferentes, ambos terão o mesmo ingresso_id e o mesmo lote_mestre_id. Use esses IDs para mapear os produtos no seu sistema externo.

    Autenticação

    Permissão necessária: vouchers:read

    Parâmetros

    Filtros

    ParâmetroTipoDescrição
    numero_pedido
    stringBusca exata por número do pedido (ex: 20260105-0001)
    sincronizado
    booleantrue/false - Filtrar por status de sincronização
    data_uso
    stringYYYY-MM-DD - Filtrar por data de uso do ingresso
    checkin_realizado
    booleantrue/false - Filtrar por status de check-in
    marcar_sincronizado
    booleanMarcar vouchers retornados como sincronizados
    limit
    numberItens por página (máx: 1000)
    offset
    numberPular N registros

    Ordenação

    ParâmetroTipoDescrição
    order_by
    stringCampo: pago_em (data do pagamento), created_at
    order
    stringDireção: desc ou asc

    Exemplos de Uso

    Buscar novos vouchers para sincronizar

    curl -X GET "https://sua-plataforma.com.br/api/v1/api-vouchers?sincronizado=false" \
      -H "X-API-Key: sk_live_SUA_CHAVE_AQUI"

    Buscar por número do pedido

    curl -X GET "https://sua-plataforma.com.br/api/v1/api-vouchers?numero_pedido=20260105-0001" \
      -H "X-API-Key: sk_live_SUA_CHAVE_AQUI"

    Vouchers sem check-in

    curl -X GET "https://sua-plataforma.com.br/api/v1/api-vouchers?checkin_realizado=false&marcar_sincronizado=false" \
      -H "X-API-Key: sk_live_SUA_CHAVE_AQUI"

    Resposta

    Estrutura hierárquica

    Os dados são organizados por pedido > lotes > pessoas:

    200OK
    {
      "success": true,
      "pedidos": [
        {
          "numero_pedido": "20260127-0003",
          "pago_em": "2026-01-27T14:30:00Z",
          "origem": "online",
          "total": 399.80,
          "desconto": 40.00,
          "cupom": {
            "codigo": "VERAO2026",
            "nome": "Desconto de Verão 10%"
          },
          "cliente": {
            "nome": "Maria Silva",
            "email": "maria@email.com"
          },
          "lotes": [
            {
              "ingresso_id": "d5b759f4-...",
              "lote_mestre_id": "abc123-mestre-fixo",
              "categoria": "adulto",
              "nome_ingresso": "Pacote Day Use",
              "nome_lote": "Adulto COM Almoço",
              "tipo_ingresso": "dayuse",
              "data_uso": "2026-02-10",
              "quantidade": 2,
              "valor_unitario": 154.90,
              "subtotal": 309.80,
              "pessoas": [
                {
                  "id": "uuid-1",
                  "qr_code": "US-uuid-1",
                  "nome": "Maria Silva",
                  "cpf": "12345678900",
                  "data_nascimento": "1985-03-20",
                  "checkin_realizado": false,
                  "checkin_em": null,
                  "sincronizado": true,
                  "sincronizado_em": "2026-01-27T14:30:00Z"
                }
              ]
            },
            {
              "ingresso_id": "d5b759f4-...",
              "lote_mestre_id": "def456-mestre-fixo",
              "categoria": "infantil",
              "nome_ingresso": "Pacote Day Use",
              "nome_lote": "Criança COM Almoço",
              "tipo_ingresso": "dayuse",
              "data_uso": "2026-02-10",
              "quantidade": 1,
              "valor_unitario": 90.00,
              "subtotal": 90.00,
              "pessoas": [
                {
                  "id": "uuid-2",
                  "qr_code": "US-uuid-2",
                  "nome": "João Silva",
                  "cpf": null,
                  "data_nascimento": "2018-06-15",
                  "checkin_realizado": false,
                  "checkin_em": null,
                  "sincronizado": true,
                  "sincronizado_em": "2026-01-27T14:30:00Z"
                }
              ]
            }
          ],
          "adicionais": [
            {
              "id": "uuid-add-1",
              "adicional_id": "uuid-cat-1",
              "nome": "Almoço Buffet Livre",
              "quantidade": 2,
              "preco_unitario": 45.00,
              "subtotal": 90.00,
              "pessoa_ingresso_id": null
            }
          ],
          "total_pessoas": 3,
          "total_lotes": 2,
          "total_adicionais": 1,
          "sincronizado": false
        }
      ],
      "pagination": {
        "total_pedidos": 1,
        "total_pessoas": 3,
        "limit": 100,
        "offset": 0
      }
    }

    Campos da Resposta

    Pedido

    ParâmetroTipoDescrição
    numero_pedido
    stringIdentificador do pedido (ex: 20260218-0004)
    pago_em
    stringData/hora do pagamento (ISO 8601). null se origem balcao
    origem
    stringCanal da venda: online, balcao ou central
    total
    numberValor total do pedido em reais (já com desconto aplicado)
    desconto
    numberValor do desconto aplicado em reais. 0 se nenhum desconto
    cupom
    object | nullDados do cupom usado. null se nenhum cupom foi aplicado
    cliente
    objectDados do comprador: nome e email
    lotes
    arrayLista de lotes/variantes comprados neste pedido
    total_pessoas
    numberTotal de pessoas/ingressos no pedido
    total_lotes
    numberQuantidade de lotes diferentes no pedido
    sincronizado
    booleantrue se todos os vouchers do pedido foram sincronizados para sua API Key

    Cupom (pedido.cupom) — null se não usado

    ParâmetroTipoDescrição
    codigo
    stringCódigo do cupom utilizado (ex: VERAO2026)
    nome
    stringNome/descrição do cupom (ex: Desconto de Verão 10%)

    Lote (dentro de pedido.lotes[])

    ParâmetroTipoDescrição
    ingresso_id
    uuidID fixo do tipo de ingresso (ex: Pacote Day Use). Mesmo ID em todos os pedidos
    lote_mestre_id
    uuidID fixo da variacao do lote (ex: Adulto COM Almoco). Mesmo ID em todos os pedidos
    categoria
    stringTipo publico: adulto, infantil ou outros
    nome_ingresso
    stringNome do tipo de ingresso
    nome_lote
    stringNome da variacao (ex: Adulto 11 anos ou mais)
    tipo_ingresso
    stringTipo tecnico: dayuse, evento ou dayuse_sem_data
    data_uso
    stringData de uso do ingresso (YYYY-MM-DD)
    quantidade
    numberQuantidade de pessoas neste lote
    valor_unitario
    numberPreco por ingresso deste lote em reais
    subtotal
    numberValor total do lote: valor_unitario x quantidade
    pessoas
    arrayLista de pessoas/vouchers deste lote

    Pessoa/Voucher (dentro de lote.pessoas[])

    ParâmetroTipoDescrição
    id
    uuidID unico do voucher (use para marcar sincronizado via POST)
    qr_code
    stringCodigo QR do ingresso (use para check-in)
    nome
    stringNome da pessoa que usara o ingresso
    cpf
    stringCPF da pessoa (null para criancas sem CPF obrigatorio)
    data_nascimento
    stringData de nascimento (YYYY-MM-DD)
    checkin_realizado
    booleantrue se o check-in ja foi feito
    checkin_em
    stringData/hora do check-in (ISO 8601). null se nao feito
    sincronizado
    booleantrue se este voucher ja foi sincronizado para sua API Key
    sincronizado_em
    stringData/hora da primeira sincronizacao. null se nao sincronizado

    Paginacao (pagination)

    ParâmetroTipoDescrição
    total_pedidos
    numberTotal de pedidos encontrados com os filtros aplicados
    total_pessoas
    numberTotal de pessoas/vouchers em todos os pedidos
    limit
    numberLimite de itens por pagina usado na requisicao
    offset
    numberOffset usado na requisicao
    has_more
    booleantrue se existem mais pedidos alem desta pagina
    Fluxo típico de integração
    1. Chame ?sincronizado=false para obter vouchers novos (marca automaticamente)
    2. Processe os dados no seu sistema
    3. Na próxima chamada, apenas vouchers novos aparecerão
    Como funciona a sincronização
    • Ao chamar a API, os vouchers são marcados como sincronizados para sua API Key
    • O campo sincronizado_em registra a data/hora da primeira chamada
    • Chamadas subsequentes NÃO alteram o sincronizado_em
    • Outra API Key ainda verá os mesmos vouchers como não sincronizados
    OmniTicketz API Documentation