excursso.
107 rotas · v1 (beta)

Referência da API

Cada rota que uma chave da agência pode chamar, com parâmetros, corpo, resposta e um exemplo pronto para copiar.

Antes de começar

Versão v1 (beta): rotas e campos ainda podem mudar.

  • Autenticação

    Envie a chave da agência em todo pedido, sempre do seu servidor.

    Authorization: Bearer exc_live_<sua-chave>
  • Endereço

    Toda rota começa por /organizations/{organizationId}, com o identificador da sua agência.

    <endereço-da-api>/api
  • Limite

    300 pedidos por minuto por chave, somando API e MCP. Acima disso, a resposta é 429 com o cabeçalho Retry-After.

  • Erros

    Todo erro responde JSON com a mesma forma.

    401 UNAUTHENTICATED
    Chave inválida, expirada ou revogada.
    403 FORBIDDEN
    Sem permissão, ou pedido feito de um navegador.
    404 NOT_FOUND
    Recurso não encontrado.
    422 VALIDATION_ERROR
    Dados inválidos; issues diz o que corrigir.
    429 RATE_LIMITED
    Limite de pedidos atingido.
    Corpo de um erro
    {
      "error": "Dados inválidos",
      "code": "VALIDATION_ERROR",
      "requestId": "<id-do-pedido>",
      "issues": [
        {
          "path": "buyer.name",
          "message": "<o que corrigir>"
        }
      ]
    }

Excursões

Listar excursões

GET/organizations/{organizationId}/excursions

Permissão da chave: excursion:read

Parâmetros de consulta

  • pageintegeropcional

    1 a 100000 · padrão 1

  • sizeintegeropcional

    1 a 100 · padrão 20

  • searchstringopcional

    até 100 caracteres · padrão ""

  • statusstringopcional

    Valores: draftpublishedarchived

Exemplo
curl "<endereço-da-api>/api/organizations/<id-da-agência>/excursions" \
  -H "Authorization: Bearer exc_live_<sua-chave>"

Resposta 200 (object)

2 campos
  • itemsarray<object>obrigatório
    15 campos de items
    • organizationIdstringobrigatório
    • idstringobrigatório
    • titlestringobrigatório
    • descriptionstringobrigatório
    • itinerarystringobrigatório
    • durationLabelstringobrigatório
    • includedSuppliersstringobrigatório
    • includedstringobrigatório
    • excludedstringobrigatório
    • restrictionsstringobrigatório
    • cancellationPolicystringobrigatório
    • destinationIdstringobrigatório
    • coverImageUrlstringobrigatório
    • statusstringobrigatório

      Valores: draftpublishedarchived

    • destinationstringobrigatório
  • paginationobjectobrigatório
    4 campos de pagination
    • pageintegerobrigatório

      1 a 9007199254740991

    • sizeintegerobrigatório

      1 a 9007199254740991

    • totalintegerobrigatório

      0 a 9007199254740991

    • pagesintegerobrigatório

      0 a 9007199254740991

Exemplo de resposta
{
  "items": [
    {
      "organizationId": "<id>",
      "id": "texto",
      "title": "texto",
      "description": "texto",
      "itinerary": "texto",
      "durationLabel": "texto",
      "includedSuppliers": "texto",
      "included": "texto",
      "excluded": "texto",
      "restrictions": "texto",
      "cancellationPolicy": "texto",
      "destinationId": "<id>",
      "coverImageUrl": "texto",
      "status": "draft",
      "destination": "texto"
    }
  ],
  "pagination": {
    "page": 1,
    "size": 1,
    "total": 0,
    "pages": 0
  }
}

Criar excursão

POST/organizations/{organizationId}/excursions

Permissão da chave: excursion:create

Corpo (JSON)

  • titlestringobrigatório

    3 a 180 caracteres

  • descriptionstringobrigatório

    até 20000 caracteres

  • coverImageUrlstringopcional

    URL · padrão "" · pode ser vazio ("")

  • itinerarystringopcional

    até 20000 caracteres · padrão ""

  • durationLabelstringopcional

    até 100 caracteres · padrão ""

  • includedSuppliersstringopcional

    até 5000 caracteres · padrão ""

  • includedstringopcional

    até 10000 caracteres · padrão ""

  • excludedstringopcional

    até 10000 caracteres · padrão ""

  • restrictionsstringopcional

    até 10000 caracteres · padrão ""

  • cancellationPolicystringopcional

    até 10000 caracteres · padrão ""

  • destinationIdstringobrigatório

    até 100 caracteres

Exemplo
curl -X POST "<endereço-da-api>/api/organizations/<id-da-agência>/excursions" \
  -H "Authorization: Bearer exc_live_<sua-chave>" \
  -H "Content-Type: application/json" \
  -d '{
  "title": "texto",
  "description": "texto",
  "destinationId": "<id>"
}'

Resposta 201 (object)

15 campos
  • organizationIdstringobrigatório
  • idstringobrigatório
  • titlestringobrigatório
  • descriptionstringobrigatório
  • itinerarystringobrigatório
  • durationLabelstringobrigatório
  • includedSuppliersstringobrigatório
  • includedstringobrigatório
  • excludedstringobrigatório
  • restrictionsstringobrigatório
  • cancellationPolicystringobrigatório
  • destinationIdstringobrigatório
  • coverImageUrlstringobrigatório
  • statusstringobrigatório

    Valores: draftpublishedarchived

  • destinationstringobrigatório
Exemplo de resposta
{
  "organizationId": "<id>",
  "id": "texto",
  "title": "texto",
  "description": "texto",
  "itinerary": "texto",
  "durationLabel": "texto",
  "includedSuppliers": "texto",
  "included": "texto",
  "excluded": "texto",
  "restrictions": "texto",
  "cancellationPolicy": "texto",
  "destinationId": "<id>",
  "coverImageUrl": "texto",
  "status": "draft",
  "destination": "texto"
}

Editar excursão

PATCH/organizations/{organizationId}/excursions/{id}

Permissão da chave: excursion:update

Parâmetros do caminho

  • idstringobrigatório

    Identificador da excursão

Corpo (JSON)

  • titlestringopcional

    3 a 180 caracteres

  • descriptionstringopcional

    até 20000 caracteres

  • coverImageUrlstringopcional

    URL · pode ser vazio ("")

  • itinerarystringopcional

    até 20000 caracteres

  • durationLabelstringopcional

    até 100 caracteres

  • includedSuppliersstringopcional

    até 5000 caracteres

  • includedstringopcional

    até 10000 caracteres

  • excludedstringopcional

    até 10000 caracteres

  • restrictionsstringopcional

    até 10000 caracteres

  • cancellationPolicystringopcional

    até 10000 caracteres

  • destinationIdstringopcional

    até 100 caracteres

Exemplo
curl -X PATCH "<endereço-da-api>/api/organizations/<id-da-agência>/excursions/<id>" \
  -H "Authorization: Bearer exc_live_<sua-chave>" \
  -H "Content-Type: application/json" \
  -d '{
  "title": "texto",
  "description": "texto",
  "coverImageUrl": "https://exemplo.com"
}'

Resposta 200 (object)

15 campos
  • organizationIdstringobrigatório
  • idstringobrigatório
  • titlestringobrigatório
  • descriptionstringobrigatório
  • itinerarystringobrigatório
  • durationLabelstringobrigatório
  • includedSuppliersstringobrigatório
  • includedstringobrigatório
  • excludedstringobrigatório
  • restrictionsstringobrigatório
  • cancellationPolicystringobrigatório
  • destinationIdstringobrigatório
  • coverImageUrlstringobrigatório
  • statusstringobrigatório

    Valores: draftpublishedarchived

  • destinationstringobrigatório
Exemplo de resposta
{
  "organizationId": "<id>",
  "id": "texto",
  "title": "texto",
  "description": "texto",
  "itinerary": "texto",
  "durationLabel": "texto",
  "includedSuppliers": "texto",
  "included": "texto",
  "excluded": "texto",
  "restrictions": "texto",
  "cancellationPolicy": "texto",
  "destinationId": "<id>",
  "coverImageUrl": "texto",
  "status": "draft",
  "destination": "texto"
}

Arquivar excursão

POST/organizations/{organizationId}/excursions/{id}/archive

Permissão da chave: excursion:update

Parâmetros do caminho

  • idstringobrigatório

    Identificador da excursão

Exemplo
curl -X POST "<endereço-da-api>/api/organizations/<id-da-agência>/excursions/<id>/archive" \
  -H "Authorization: Bearer exc_live_<sua-chave>"

Resposta 200 (object)

15 campos
  • organizationIdstringobrigatório
  • idstringobrigatório
  • titlestringobrigatório
  • descriptionstringobrigatório
  • itinerarystringobrigatório
  • durationLabelstringobrigatório
  • includedSuppliersstringobrigatório
  • includedstringobrigatório
  • excludedstringobrigatório
  • restrictionsstringobrigatório
  • cancellationPolicystringobrigatório
  • destinationIdstringobrigatório
  • coverImageUrlstringobrigatório
  • statusstringobrigatório

    Valores: draftpublishedarchived

  • destinationstringobrigatório
Exemplo de resposta
{
  "organizationId": "<id>",
  "id": "texto",
  "title": "texto",
  "description": "texto",
  "itinerary": "texto",
  "durationLabel": "texto",
  "includedSuppliers": "texto",
  "included": "texto",
  "excluded": "texto",
  "restrictions": "texto",
  "cancellationPolicy": "texto",
  "destinationId": "<id>",
  "coverImageUrl": "texto",
  "status": "draft",
  "destination": "texto"
}

Listar saídas da excursão

GET/organizations/{organizationId}/excursions/{id}/departures

Permissão da chave: departure:read

Parâmetros do caminho

  • idstringobrigatório

    Identificador da excursão

Parâmetros de consulta

  • pageintegeropcional

    1 a 100000 · padrão 1

  • sizeintegeropcional

    1 a 100 · padrão 20

  • searchstringopcional

    até 100 caracteres · padrão ""

  • statusstringopcional

    Valores: draftpublishedclosedcancelled

Exemplo
curl "<endereço-da-api>/api/organizations/<id-da-agência>/excursions/<id>/departures" \
  -H "Authorization: Bearer exc_live_<sua-chave>"

Resposta 200 (object)

2 campos
  • itemsarray<object>obrigatório
    5 campos de items
    • inventoryobjectobrigatório
      8 campos de inventory
      • idstringobrigatório
      • departureIdstringobrigatório
      • namestringobrigatório
      • unitstringobrigatório

        Valores: personroompackage

      • capacityintegerobrigatório

        -9007199254740991 a 9007199254740991

      • reservedintegerobrigatório

        -9007199254740991 a 9007199254740991

      • priceCentsintegerobrigatório

        valor em centavos · -9007199254740991 a 9007199254740991

      • lapInfantPriceCentsintegerobrigatório

        valor em centavos · -9007199254740991 a 9007199254740991

    • fareOptionsarray<object>obrigatório
      6 campos de fareOptions
      • idstringobrigatório
      • departureIdstringobrigatório
      • namestringobrigatório
      • partySizeintegerobrigatório

        -9007199254740991 a 9007199254740991

      • priceCentsintegerobrigatório

        valor em centavos · -9007199254740991 a 9007199254740991

      • activebooleanobrigatório
    • extraChargesarray<object>obrigatório
      7 campos de extraCharges
      • idstringobrigatório
      • departureIdstringobrigatório
      • namestringobrigatório
      • priceCentsintegerobrigatório

        valor em centavos · -9007199254740991 a 9007199254740991

      • basisstringobrigatório

        Valores: bookingpassenger

      • requiredbooleanobrigatório
      • activebooleanobrigatório
    • departureobjectobrigatório
      8 campos de departure
      • idstringobrigatório
      • excursionIdstringobrigatório
      • startsAtstringobrigatório
      • meetingInstructionsstringobrigatório
      • vehicleIdstringobrigatório

        pode ser vazio (null)

      • seatLayoutSnapshotobjectobrigatório

        pode ser vazio (null)

        1 campo de seatLayoutSnapshot
        • seatsarray<object>obrigatório

          1 a 100 itens

          4 campos de seats
          • labelstringobrigatório

            até 20 caracteres

          • rowintegerobrigatório

            1 a 100

          • columnintegerobrigatório

            1 a 10

          • blockedbooleanobrigatório
      • seatSelectionEnabledbooleanobrigatório
      • statusstringobrigatório

        Valores: draftpublishedclosedcancelled

    • breakEvenobjectobrigatório

      pode ser vazio (null)

  • paginationobjectobrigatório
    4 campos de pagination
    • pageintegerobrigatório

      1 a 9007199254740991

    • sizeintegerobrigatório

      1 a 9007199254740991

    • totalintegerobrigatório

      0 a 9007199254740991

    • pagesintegerobrigatório

      0 a 9007199254740991

Exemplo de resposta
{
  "items": [
    {
      "inventory": {
        "id": "texto",
        "departureId": "<id>",
        "name": "texto",
        "unit": "person",
        "capacity": -9007199254740991,
        "reserved": -9007199254740991,
        "priceCents": -9007199254740991,
        "lapInfantPriceCents": -9007199254740991
      },
      "fareOptions": [
        {
          "id": "texto",
          "departureId": "<id>",
          "name": "texto",
          "partySize": -9007199254740991,
          "priceCents": -9007199254740991,
          "active": true
        }
      ],
      "extraCharges": [
        {
          "id": "texto",
          "departureId": "<id>",
          "name": "texto",
          "priceCents": -9007199254740991,
          "basis": "booking",
          "required": true,
          "active": true
        }
      ],
      "departure": {
        "id": "texto",
        "excursionId": "<id>",
        "startsAt": "texto",
        "meetingInstructions": "texto",
        "vehicleId": "<id>",
        "seatLayoutSnapshot": {
          "seats": [
            {
              "label": "texto",
              "row": 1,
              "column": 1,
              "blocked": true
            }
          ]
        },
        "seatSelectionEnabled": true,
        "status": "draft"
      },
      "breakEven": {}
    }
  ],
  "pagination": {
    "page": 1,
    "size": 1,
    "total": 0,
    "pages": 0
  }
}

Criar saída da excursão

POST/organizations/{organizationId}/excursions/{id}/departures

Permissão da chave: departure:create

Parâmetros do caminho

  • idstringobrigatório

    Identificador da excursão

Corpo (JSON)

  • startsAtstringobrigatório

    data e hora ISO 8601

  • vehicleIdstringopcional
  • seatSelectionEnabledbooleanopcional

    padrão false

  • meetingInstructionsstringopcional

    até 2000 caracteres · padrão ""

  • capacityintegerobrigatório

    1 a 10000

  • priceCentsintegerobrigatório

    valor em centavos · 1 a 100000000

  • lapInfantPriceCentsintegeropcional

    valor em centavos · 0 a 100000000 · padrão 0

  • unitstringopcional

    sempre "person" · padrão "person"

  • boardingPointsarray<object>opcional

    0 a 30 itens

    5 campos de boardingPoints
    • namestringobrigatório

      2 a 150 caracteres

    • addressstringobrigatório

      3 a 500 caracteres

    • boardingAtstringobrigatório

      data e hora ISO 8601

    • returnAtstringopcional

      data e hora ISO 8601 · pode ser vazio (null)

    • referencestringopcional

      até 160 caracteres · pode ser vazio (null)

  • fareOptionsarray<object>opcional

    0 a 30 itens

    3 campos de fareOptions
    • namestringobrigatório

      2 a 100 caracteres

    • partySizeintegerobrigatório

      1 a 100

    • priceCentsintegerobrigatório

      valor em centavos · 1 a 100000000

  • extraChargesarray<object>opcional

    0 a 30 itens

    4 campos de extraCharges
    • namestringobrigatório

      2 a 100 caracteres

    • priceCentsintegerobrigatório

      valor em centavos · 0 a 100000000

    • basisstringobrigatório

      Valores: bookingpassenger

    • requiredbooleanopcional

      padrão false

Exemplo
curl -X POST "<endereço-da-api>/api/organizations/<id-da-agência>/excursions/<id>/departures" \
  -H "Authorization: Bearer exc_live_<sua-chave>" \
  -H "Content-Type: application/json" \
  -d '{
  "startsAt": "2026-12-20T08:00:00.000Z",
  "capacity": 1,
  "priceCents": 1
}'

Resposta 201 (object)

8 campos
  • idstringobrigatório
  • excursionIdstringobrigatório
  • startsAtstringobrigatório
  • meetingInstructionsstringobrigatório
  • vehicleIdstringobrigatório

    pode ser vazio (null)

  • seatLayoutSnapshotobjectobrigatório

    pode ser vazio (null)

    1 campo de seatLayoutSnapshot
    • seatsarray<object>obrigatório

      1 a 100 itens

      4 campos de seats
      • labelstringobrigatório

        até 20 caracteres

      • rowintegerobrigatório

        1 a 100

      • columnintegerobrigatório

        1 a 10

      • blockedbooleanobrigatório
  • seatSelectionEnabledbooleanobrigatório
  • statusstringobrigatório

    Valores: draftpublishedclosedcancelled

Exemplo de resposta
{
  "id": "texto",
  "excursionId": "<id>",
  "startsAt": "texto",
  "meetingInstructions": "texto",
  "vehicleId": "<id>",
  "seatLayoutSnapshot": {
    "seats": [
      {
        "label": "texto",
        "row": 1,
        "column": 1,
        "blocked": true
      }
    ]
  },
  "seatSelectionEnabled": true,
  "status": "draft"
}

Cancelar saída

POST/organizations/{organizationId}/excursions/{id}/departures/{departureId}/cancel

Permissão da chave: departure:publish

Parâmetros do caminho

  • idstringobrigatório

    Identificador da excursão

  • departureIdstringobrigatório

    Identificador da saída

Corpo (JSON)

  • reasonstringobrigatório

    3 a 2000 caracteres

Exemplo
curl -X POST "<endereço-da-api>/api/organizations/<id-da-agência>/excursions/<id>/departures/<departureId>/cancel" \
  -H "Authorization: Bearer exc_live_<sua-chave>" \
  -H "Content-Type: application/json" \
  -d '{
  "reason": "texto"
}'

Resposta 200 (object)

2 campos
  • departureobjectobrigatório
    8 campos de departure
    • idstringobrigatório
    • excursionIdstringobrigatório
    • startsAtstringobrigatório
    • meetingInstructionsstringobrigatório
    • vehicleIdstringobrigatório

      pode ser vazio (null)

    • seatLayoutSnapshotobjectobrigatório

      pode ser vazio (null)

      1 campo de seatLayoutSnapshot
      • seatsarray<object>obrigatório

        1 a 100 itens

        4 campos de seats
        • labelstringobrigatório

          até 20 caracteres

        • rowintegerobrigatório

          1 a 100

        • columnintegerobrigatório

          1 a 10

        • blockedbooleanobrigatório
    • seatSelectionEnabledbooleanobrigatório
    • statusstringobrigatório

      Valores: draftpublishedclosedcancelled

  • affectedBookingsintegerobrigatório

    0 a 9007199254740991

Exemplo de resposta
{
  "departure": {
    "id": "texto",
    "excursionId": "<id>",
    "startsAt": "texto",
    "meetingInstructions": "texto",
    "vehicleId": "<id>",
    "seatLayoutSnapshot": {
      "seats": [
        {
          "label": "texto",
          "row": 1,
          "column": 1,
          "blocked": true
        }
      ]
    },
    "seatSelectionEnabled": true,
    "status": "draft"
  },
  "affectedBookings": 0
}

Encerrar saída

POST/organizations/{organizationId}/excursions/{id}/departures/{departureId}/close

Permissão da chave: departure:publish

Parâmetros do caminho

  • idstringobrigatório

    Identificador da excursão

  • departureIdstringobrigatório

    Identificador da saída

Exemplo
curl -X POST "<endereço-da-api>/api/organizations/<id-da-agência>/excursions/<id>/departures/<departureId>/close" \
  -H "Authorization: Bearer exc_live_<sua-chave>"

Resposta 200 (object)

8 campos
  • idstringobrigatório
  • excursionIdstringobrigatório
  • startsAtstringobrigatório
  • meetingInstructionsstringobrigatório
  • vehicleIdstringobrigatório

    pode ser vazio (null)

  • seatLayoutSnapshotobjectobrigatório

    pode ser vazio (null)

    1 campo de seatLayoutSnapshot
    • seatsarray<object>obrigatório

      1 a 100 itens

      4 campos de seats
      • labelstringobrigatório

        até 20 caracteres

      • rowintegerobrigatório

        1 a 100

      • columnintegerobrigatório

        1 a 10

      • blockedbooleanobrigatório
  • seatSelectionEnabledbooleanobrigatório
  • statusstringobrigatório

    Valores: draftpublishedclosedcancelled

Exemplo de resposta
{
  "id": "texto",
  "excursionId": "<id>",
  "startsAt": "texto",
  "meetingInstructions": "texto",
  "vehicleId": "<id>",
  "seatLayoutSnapshot": {
    "seats": [
      {
        "label": "texto",
        "row": 1,
        "column": 1,
        "blocked": true
      }
    ]
  },
  "seatSelectionEnabled": true,
  "status": "draft"
}

Ver histórico da saída

GET/organizations/{organizationId}/excursions/{id}/departures/{departureId}/history

Permissão da chave: departure:read

Parâmetros do caminho

  • idstringobrigatório

    Identificador da excursão

  • departureIdstringobrigatório

    Identificador da saída

Parâmetros de consulta

  • pageintegeropcional

    1 a 100000 · padrão 1

  • sizeintegeropcional

    1 a 100 · padrão 20

  • searchstringopcional

    até 100 caracteres · padrão ""

Exemplo
curl "<endereço-da-api>/api/organizations/<id-da-agência>/excursions/<id>/departures/<departureId>/history" \
  -H "Authorization: Bearer exc_live_<sua-chave>"

Resposta 200 (object)

2 campos
  • itemsarray<object>obrigatório
    8 campos de items
    • idstringobrigatório
    • departureIdstringobrigatório
    • typestringobrigatório

      Valores: rescheduledcancelled

    • reasonstringobrigatório
    • previousStartsAtstringobrigatório
    • startsAtstringobrigatório
    • actorIdstringobrigatório
    • occurredAtintegerobrigatório

      -9007199254740991 a 9007199254740991

  • paginationobjectobrigatório
    4 campos de pagination
    • pageintegerobrigatório

      1 a 9007199254740991

    • sizeintegerobrigatório

      1 a 9007199254740991

    • totalintegerobrigatório

      0 a 9007199254740991

    • pagesintegerobrigatório

      0 a 9007199254740991

Exemplo de resposta
{
  "items": [
    {
      "id": "texto",
      "departureId": "<id>",
      "type": "rescheduled",
      "reason": "texto",
      "previousStartsAt": "texto",
      "startsAt": "texto",
      "actorId": "<id>",
      "occurredAt": -9007199254740991
    }
  ],
  "pagination": {
    "page": 1,
    "size": 1,
    "total": 0,
    "pages": 0
  }
}

Atualizar preços da saída

PUT/organizations/{organizationId}/excursions/{id}/departures/{departureId}/pricing

Permissão da chave: excursion:update

Parâmetros do caminho

  • idstringobrigatório

    Identificador da excursão

  • departureIdstringobrigatório

    Identificador da saída

Corpo (JSON)

  • priceCentsintegerobrigatório

    valor em centavos · 1 a 100000000

  • lapInfantPriceCentsintegeropcional

    valor em centavos · 0 a 100000000 · padrão 0

  • fareOptionsarray<object>obrigatório

    0 a 30 itens

    3 campos de fareOptions
    • namestringobrigatório

      2 a 100 caracteres

    • partySizeintegerobrigatório

      1 a 100

    • priceCentsintegerobrigatório

      valor em centavos · 1 a 100000000

  • extraChargesarray<object>obrigatório

    0 a 30 itens

    4 campos de extraCharges
    • namestringobrigatório

      2 a 100 caracteres

    • priceCentsintegerobrigatório

      valor em centavos · 0 a 100000000

    • basisstringobrigatório

      Valores: bookingpassenger

    • requiredbooleanopcional

      padrão false

Exemplo
curl -X PUT "<endereço-da-api>/api/organizations/<id-da-agência>/excursions/<id>/departures/<departureId>/pricing" \
  -H "Authorization: Bearer exc_live_<sua-chave>" \
  -H "Content-Type: application/json" \
  -d '{
  "priceCents": 1,
  "fareOptions": [
    {
      "name": "texto",
      "partySize": 1,
      "priceCents": 1
    }
  ],
  "extraCharges": [
    {
      "name": "texto",
      "priceCents": 0,
      "basis": "booking"
    }
  ]
}'

Resposta 200 (object)

3 campos
  • inventoryobjectobrigatório
    8 campos de inventory
    • idstringobrigatório
    • departureIdstringobrigatório
    • namestringobrigatório
    • unitstringobrigatório

      Valores: personroompackage

    • capacityintegerobrigatório

      -9007199254740991 a 9007199254740991

    • reservedintegerobrigatório

      -9007199254740991 a 9007199254740991

    • priceCentsintegerobrigatório

      valor em centavos · -9007199254740991 a 9007199254740991

    • lapInfantPriceCentsintegerobrigatório

      valor em centavos · -9007199254740991 a 9007199254740991

  • fareOptionsarray<object>obrigatório
    6 campos de fareOptions
    • idstringobrigatório
    • departureIdstringobrigatório
    • namestringobrigatório
    • partySizeintegerobrigatório

      -9007199254740991 a 9007199254740991

    • priceCentsintegerobrigatório

      valor em centavos · -9007199254740991 a 9007199254740991

    • activebooleanobrigatório
  • extraChargesarray<object>obrigatório
    7 campos de extraCharges
    • idstringobrigatório
    • departureIdstringobrigatório
    • namestringobrigatório
    • priceCentsintegerobrigatório

      valor em centavos · -9007199254740991 a 9007199254740991

    • basisstringobrigatório

      Valores: bookingpassenger

    • requiredbooleanobrigatório
    • activebooleanobrigatório
Exemplo de resposta
{
  "inventory": {
    "id": "texto",
    "departureId": "<id>",
    "name": "texto",
    "unit": "person",
    "capacity": -9007199254740991,
    "reserved": -9007199254740991,
    "priceCents": -9007199254740991,
    "lapInfantPriceCents": -9007199254740991
  },
  "fareOptions": [
    {
      "id": "texto",
      "departureId": "<id>",
      "name": "texto",
      "partySize": -9007199254740991,
      "priceCents": -9007199254740991,
      "active": true
    }
  ],
  "extraCharges": [
    {
      "id": "texto",
      "departureId": "<id>",
      "name": "texto",
      "priceCents": -9007199254740991,
      "basis": "booking",
      "required": true,
      "active": true
    }
  ]
}

Publicar saída

POST/organizations/{organizationId}/excursions/{id}/departures/{departureId}/publish

Permissão da chave: departure:publish

Parâmetros do caminho

  • idstringobrigatório

    Identificador da excursão

  • departureIdstringobrigatório

    Identificador da saída

Exemplo
curl -X POST "<endereço-da-api>/api/organizations/<id-da-agência>/excursions/<id>/departures/<departureId>/publish" \
  -H "Authorization: Bearer exc_live_<sua-chave>"

Resposta 200 (object)

8 campos
  • idstringobrigatório
  • excursionIdstringobrigatório
  • startsAtstringobrigatório
  • meetingInstructionsstringobrigatório
  • vehicleIdstringobrigatório

    pode ser vazio (null)

  • seatLayoutSnapshotobjectobrigatório

    pode ser vazio (null)

    1 campo de seatLayoutSnapshot
    • seatsarray<object>obrigatório

      1 a 100 itens

      4 campos de seats
      • labelstringobrigatório

        até 20 caracteres

      • rowintegerobrigatório

        1 a 100

      • columnintegerobrigatório

        1 a 10

      • blockedbooleanobrigatório
  • seatSelectionEnabledbooleanobrigatório
  • statusstringobrigatório

    Valores: draftpublishedclosedcancelled

Exemplo de resposta
{
  "id": "texto",
  "excursionId": "<id>",
  "startsAt": "texto",
  "meetingInstructions": "texto",
  "vehicleId": "<id>",
  "seatLayoutSnapshot": {
    "seats": [
      {
        "label": "texto",
        "row": 1,
        "column": 1,
        "blocked": true
      }
    ]
  },
  "seatSelectionEnabled": true,
  "status": "draft"
}

Remarcar saída

POST/organizations/{organizationId}/excursions/{id}/departures/{departureId}/reschedule

Permissão da chave: departure:publish

Parâmetros do caminho

  • idstringobrigatório

    Identificador da excursão

  • departureIdstringobrigatório

    Identificador da saída

Corpo (JSON)

  • startsAtstringobrigatório

    data e hora ISO 8601

  • reasonstringobrigatório

    3 a 2000 caracteres

Exemplo
curl -X POST "<endereço-da-api>/api/organizations/<id-da-agência>/excursions/<id>/departures/<departureId>/reschedule" \
  -H "Authorization: Bearer exc_live_<sua-chave>" \
  -H "Content-Type: application/json" \
  -d '{
  "startsAt": "2026-12-20T08:00:00.000Z",
  "reason": "texto"
}'

Resposta 200 (object)

2 campos
  • departureobjectobrigatório
    8 campos de departure
    • idstringobrigatório
    • excursionIdstringobrigatório
    • startsAtstringobrigatório
    • meetingInstructionsstringobrigatório
    • vehicleIdstringobrigatório

      pode ser vazio (null)

    • seatLayoutSnapshotobjectobrigatório

      pode ser vazio (null)

      1 campo de seatLayoutSnapshot
      • seatsarray<object>obrigatório

        1 a 100 itens

        4 campos de seats
        • labelstringobrigatório

          até 20 caracteres

        • rowintegerobrigatório

          1 a 100

        • columnintegerobrigatório

          1 a 10

        • blockedbooleanobrigatório
    • seatSelectionEnabledbooleanobrigatório
    • statusstringobrigatório

      Valores: draftpublishedclosedcancelled

  • affectedBookingsintegerobrigatório

    0 a 9007199254740991

Exemplo de resposta
{
  "departure": {
    "id": "texto",
    "excursionId": "<id>",
    "startsAt": "texto",
    "meetingInstructions": "texto",
    "vehicleId": "<id>",
    "seatLayoutSnapshot": {
      "seats": [
        {
          "label": "texto",
          "row": 1,
          "column": 1,
          "blocked": true
        }
      ]
    },
    "seatSelectionEnabled": true,
    "status": "draft"
  },
  "affectedBookings": 0
}

Publicar excursão

POST/organizations/{organizationId}/excursions/{id}/publish

Permissão da chave: excursion:publish

Parâmetros do caminho

  • idstringobrigatório

    Identificador da excursão

Exemplo
curl -X POST "<endereço-da-api>/api/organizations/<id-da-agência>/excursions/<id>/publish" \
  -H "Authorization: Bearer exc_live_<sua-chave>"

Resposta 200 (object)

15 campos
  • organizationIdstringobrigatório
  • idstringobrigatório
  • titlestringobrigatório
  • descriptionstringobrigatório
  • itinerarystringobrigatório
  • durationLabelstringobrigatório
  • includedSuppliersstringobrigatório
  • includedstringobrigatório
  • excludedstringobrigatório
  • restrictionsstringobrigatório
  • cancellationPolicystringobrigatório
  • destinationIdstringobrigatório
  • coverImageUrlstringobrigatório
  • statusstringobrigatório

    Valores: draftpublishedarchived

  • destinationstringobrigatório
Exemplo de resposta
{
  "organizationId": "<id>",
  "id": "texto",
  "title": "texto",
  "description": "texto",
  "itinerary": "texto",
  "durationLabel": "texto",
  "includedSuppliers": "texto",
  "included": "texto",
  "excluded": "texto",
  "restrictions": "texto",
  "cancellationPolicy": "texto",
  "destinationId": "<id>",
  "coverImageUrl": "texto",
  "status": "draft",
  "destination": "texto"
}

Reservas

Listar reservas

GET/organizations/{organizationId}/bookings

Permissão da chave: booking:read

Parâmetros de consulta

  • pageintegeropcional

    1 a 100000 · padrão 1

  • sizeintegeropcional

    1 a 100 · padrão 20

  • searchstringopcional

    até 100 caracteres · padrão ""

  • statusstringopcional

    Valores: pendingconfirmedcancelledexpired

  • externalRefstringopcional

    até 120 caracteres

Exemplo
curl "<endereço-da-api>/api/organizations/<id-da-agência>/bookings" \
  -H "Authorization: Bearer exc_live_<sua-chave>"

Resposta 200 (object)

2 campos
  • itemsarray<object>obrigatório
    7 campos de items
    • idstringobrigatório
    • statusstringobrigatório

      Valores: pendingconfirmedcancelledexpired

    • externalRefstringobrigatório

      pode ser vazio (null)

    • buyerNamestringobrigatório
    • departureIdstringobrigatório
    • titlestringobrigatório
    • startsAtstringobrigatório
  • paginationobjectobrigatório
    4 campos de pagination
    • pageintegerobrigatório

      1 a 9007199254740991

    • sizeintegerobrigatório

      1 a 9007199254740991

    • totalintegerobrigatório

      0 a 9007199254740991

    • pagesintegerobrigatório

      0 a 9007199254740991

Exemplo de resposta
{
  "items": [
    {
      "id": "texto",
      "status": "pending",
      "externalRef": "texto",
      "buyerName": "texto",
      "departureId": "<id>",
      "title": "texto",
      "startsAt": "texto"
    }
  ],
  "pagination": {
    "page": 1,
    "size": 1,
    "total": 0,
    "pages": 0
  }
}

Criar reserva

POST/organizations/{organizationId}/bookings

Permissão da chave: booking:create

Corpo (JSON)

  • idempotencyKeystringobrigatório

    UUID

  • departureIdstringobrigatório

    até 200 caracteres

  • inventoryPoolIdstringobrigatório

    até 200 caracteres

  • fareOptionIdstringopcional
  • extraChargeIdsarray<string>opcional

    0 a 30 itens

  • buyerobjectobrigatório
    4 campos de buyer
    • namestringobrigatório

      2 a 150 caracteres

    • emailstringopcional

      e-mail

    • phonestringopcional
    • cpfstringobrigatório
  • passengersarray<object>obrigatório

    1 a 100 itens

    7 campos de passengers
    • namestringobrigatório

      2 a 150 caracteres

    • boardingPointIdstringopcional

      até 200 caracteres

    • seatLabelstringopcional

      até 20 caracteres

    • lapInfantbooleanopcional
    • documentobjectopcional
      4 campos de document
      • typestringobrigatório

        Valores: cpfrgpassportbirth-certificate

      • numberstringobrigatório

        5 a 40 caracteres

      • issuerstringopcional

        até 20 caracteres

      • issuerStatestringopcional

        Valores: ACALAMAPBACEDFESGOMAMGMSMTPAPBPEPIPRRJRNRORRRSSCSESPTO

    • birthDatestringopcional

      data AAAA-MM-DD

    • travelerIdstringopcional

      até 100 caracteres

  • installmentsarray<object>obrigatório

    1 a 36 itens

    2 campos de installments
    • dueDatestringobrigatório

      data AAAA-MM-DD

    • amountCentsintegerobrigatório

      valor em centavos · acima de 0 a 100000000

  • couponCodestringopcional
  • externalRefstringopcional

    até 120 caracteres

Exemplo
curl -X POST "<endereço-da-api>/api/organizations/<id-da-agência>/bookings" \
  -H "Authorization: Bearer exc_live_<sua-chave>" \
  -H "Content-Type: application/json" \
  -d '{
  "idempotencyKey": "<uuid>",
  "departureId": "<id>",
  "inventoryPoolId": "<id>",
  "buyer": {
    "name": "texto",
    "cpf": "texto"
  },
  "passengers": [
    {
      "name": "texto"
    }
  ],
  "installments": [
    {
      "dueDate": "2026-12-20",
      "amountCents": 1
    }
  ]
}'

Resposta 201 (object)

12 campos
  • idstringobrigatório
  • statusstringobrigatório

    Valores: pendingconfirmedcancelledexpired

  • externalRefstringobrigatório

    pode ser vazio (null)

  • buyerNamestringobrigatório
  • departureIdstringobrigatório
  • titlestringobrigatório
  • startsAtstringobrigatório
  • buyerEmailstringobrigatório

    pode ser vazio (null)

  • buyerPhonestringobrigatório

    pode ser vazio (null)

  • buyerDocumentHintstringobrigatório

    pode ser vazio (null)

  • destinationstringobrigatório
  • offerSnapshotobjectobrigatório

    pode ser vazio (null)

    17 campos de offerSnapshot
    • titlestringobrigatório
    • destinationstringobrigatório
    • descriptionstringopcional
    • itinerarystringopcional
    • durationLabelstringopcional
    • includedSuppliersstringopcional
    • includedstringopcional
    • excludedstringopcional
    • restrictionsstringopcional
    • cancellationPolicystringopcional
    • meetingInstructionsstringopcional
    • startsAtstringobrigatório
    • fareobjectobrigatório

      pode ser vazio (null)

      3 campos de fare
      • namestringobrigatório
      • partySizenumberobrigatório
      • priceCentsnumberobrigatório

        valor em centavos

    • chargesarray<object>obrigatório
      3 campos de charges
      • namestringobrigatório
      • basisstringobrigatório

        Valores: bookingpassenger

      • priceCentsnumberobrigatório

        valor em centavos

    • lapInfantsobjectobrigatório
      2 campos de lapInfants
      • countnumberobrigatório
      • priceCentsnumberobrigatório

        valor em centavos

    • couponobjectopcional
      2 campos de coupon
      • codestringobrigatório
      • discountCentsnumberobrigatório

        valor em centavos

    • contractstringopcional
Exemplo de resposta
{
  "id": "texto",
  "status": "pending",
  "externalRef": "texto",
  "buyerName": "texto",
  "departureId": "<id>",
  "title": "texto",
  "startsAt": "texto",
  "buyerEmail": "texto",
  "buyerPhone": "texto",
  "buyerDocumentHint": "texto",
  "destination": "texto",
  "offerSnapshot": {
    "title": "texto",
    "destination": "texto",
    "description": "texto",
    "itinerary": "texto",
    "durationLabel": "texto",
    "includedSuppliers": "texto",
    "included": "texto",
    "excluded": "texto",
    "restrictions": "texto",
    "cancellationPolicy": "texto",
    "meetingInstructions": "texto",
    "startsAt": "texto",
    "fare": {
      "name": "texto",
      "partySize": 0,
      "priceCents": 0
    },
    "charges": [
      {
        "name": "texto",
        "basis": "booking",
        "priceCents": 0
      }
    ],
    "lapInfants": {
      "count": 0,
      "priceCents": 0
    },
    "coupon": {
      "code": "texto",
      "discountCents": 0
    },
    "contract": "texto"
  }
}

Ver reserva

GET/organizations/{organizationId}/bookings/{id}

Permissão da chave: booking:read

Parâmetros do caminho

  • idstringobrigatório

    Identificador da reserva

Exemplo
curl "<endereço-da-api>/api/organizations/<id-da-agência>/bookings/<id>" \
  -H "Authorization: Bearer exc_live_<sua-chave>"

Resposta 200 (object)

12 campos
  • idstringobrigatório
  • statusstringobrigatório

    Valores: pendingconfirmedcancelledexpired

  • externalRefstringobrigatório

    pode ser vazio (null)

  • buyerNamestringobrigatório
  • departureIdstringobrigatório
  • titlestringobrigatório
  • startsAtstringobrigatório
  • buyerEmailstringobrigatório

    pode ser vazio (null)

  • buyerPhonestringobrigatório

    pode ser vazio (null)

  • buyerDocumentHintstringobrigatório

    pode ser vazio (null)

  • destinationstringobrigatório
  • offerSnapshotobjectobrigatório

    pode ser vazio (null)

    17 campos de offerSnapshot
    • titlestringobrigatório
    • destinationstringobrigatório
    • descriptionstringopcional
    • itinerarystringopcional
    • durationLabelstringopcional
    • includedSuppliersstringopcional
    • includedstringopcional
    • excludedstringopcional
    • restrictionsstringopcional
    • cancellationPolicystringopcional
    • meetingInstructionsstringopcional
    • startsAtstringobrigatório
    • fareobjectobrigatório

      pode ser vazio (null)

      3 campos de fare
      • namestringobrigatório
      • partySizenumberobrigatório
      • priceCentsnumberobrigatório

        valor em centavos

    • chargesarray<object>obrigatório
      3 campos de charges
      • namestringobrigatório
      • basisstringobrigatório

        Valores: bookingpassenger

      • priceCentsnumberobrigatório

        valor em centavos

    • lapInfantsobjectobrigatório
      2 campos de lapInfants
      • countnumberobrigatório
      • priceCentsnumberobrigatório

        valor em centavos

    • couponobjectopcional
      2 campos de coupon
      • codestringobrigatório
      • discountCentsnumberobrigatório

        valor em centavos

    • contractstringopcional
Exemplo de resposta
{
  "id": "texto",
  "status": "pending",
  "externalRef": "texto",
  "buyerName": "texto",
  "departureId": "<id>",
  "title": "texto",
  "startsAt": "texto",
  "buyerEmail": "texto",
  "buyerPhone": "texto",
  "buyerDocumentHint": "texto",
  "destination": "texto",
  "offerSnapshot": {
    "title": "texto",
    "destination": "texto",
    "description": "texto",
    "itinerary": "texto",
    "durationLabel": "texto",
    "includedSuppliers": "texto",
    "included": "texto",
    "excluded": "texto",
    "restrictions": "texto",
    "cancellationPolicy": "texto",
    "meetingInstructions": "texto",
    "startsAt": "texto",
    "fare": {
      "name": "texto",
      "partySize": 0,
      "priceCents": 0
    },
    "charges": [
      {
        "name": "texto",
        "basis": "booking",
        "priceCents": 0
      }
    ],
    "lapInfants": {
      "count": 0,
      "priceCents": 0
    },
    "coupon": {
      "code": "texto",
      "discountCents": 0
    },
    "contract": "texto"
  }
}

Editar reserva

PATCH/organizations/{organizationId}/bookings/{id}

Permissão da chave: booking:update

Parâmetros do caminho

  • idstringobrigatório

    Identificador da reserva

Corpo (JSON)

  • externalRefstringopcional

    até 120 caracteres · pode ser vazio (null)

Exemplo
curl -X PATCH "<endereço-da-api>/api/organizations/<id-da-agência>/bookings/<id>" \
  -H "Authorization: Bearer exc_live_<sua-chave>" \
  -H "Content-Type: application/json" \
  -d '{
  "externalRef": "texto"
}'

Resposta 200 (object)

12 campos
  • idstringobrigatório
  • statusstringobrigatório

    Valores: pendingconfirmedcancelledexpired

  • externalRefstringobrigatório

    pode ser vazio (null)

  • buyerNamestringobrigatório
  • departureIdstringobrigatório
  • titlestringobrigatório
  • startsAtstringobrigatório
  • buyerEmailstringobrigatório

    pode ser vazio (null)

  • buyerPhonestringobrigatório

    pode ser vazio (null)

  • buyerDocumentHintstringobrigatório

    pode ser vazio (null)

  • destinationstringobrigatório
  • offerSnapshotobjectobrigatório

    pode ser vazio (null)

    17 campos de offerSnapshot
    • titlestringobrigatório
    • destinationstringobrigatório
    • descriptionstringopcional
    • itinerarystringopcional
    • durationLabelstringopcional
    • includedSuppliersstringopcional
    • includedstringopcional
    • excludedstringopcional
    • restrictionsstringopcional
    • cancellationPolicystringopcional
    • meetingInstructionsstringopcional
    • startsAtstringobrigatório
    • fareobjectobrigatório

      pode ser vazio (null)

      3 campos de fare
      • namestringobrigatório
      • partySizenumberobrigatório
      • priceCentsnumberobrigatório

        valor em centavos

    • chargesarray<object>obrigatório
      3 campos de charges
      • namestringobrigatório
      • basisstringobrigatório

        Valores: bookingpassenger

      • priceCentsnumberobrigatório

        valor em centavos

    • lapInfantsobjectobrigatório
      2 campos de lapInfants
      • countnumberobrigatório
      • priceCentsnumberobrigatório

        valor em centavos

    • couponobjectopcional
      2 campos de coupon
      • codestringobrigatório
      • discountCentsnumberobrigatório

        valor em centavos

    • contractstringopcional
Exemplo de resposta
{
  "id": "texto",
  "status": "pending",
  "externalRef": "texto",
  "buyerName": "texto",
  "departureId": "<id>",
  "title": "texto",
  "startsAt": "texto",
  "buyerEmail": "texto",
  "buyerPhone": "texto",
  "buyerDocumentHint": "texto",
  "destination": "texto",
  "offerSnapshot": {
    "title": "texto",
    "destination": "texto",
    "description": "texto",
    "itinerary": "texto",
    "durationLabel": "texto",
    "includedSuppliers": "texto",
    "included": "texto",
    "excluded": "texto",
    "restrictions": "texto",
    "cancellationPolicy": "texto",
    "meetingInstructions": "texto",
    "startsAt": "texto",
    "fare": {
      "name": "texto",
      "partySize": 0,
      "priceCents": 0
    },
    "charges": [
      {
        "name": "texto",
        "basis": "booking",
        "priceCents": 0
      }
    ],
    "lapInfants": {
      "count": 0,
      "priceCents": 0
    },
    "coupon": {
      "code": "texto",
      "discountCents": 0
    },
    "contract": "texto"
  }
}

Gerar o link de acesso da reserva

POST/organizations/{organizationId}/bookings/{id}/access

Permissão da chave: booking:read

Parâmetros do caminho

  • idstringobrigatório

    Identificador da reserva

Exemplo
curl -X POST "<endereço-da-api>/api/organizations/<id-da-agência>/bookings/<id>/access" \
  -H "Authorization: Bearer exc_live_<sua-chave>"

Resposta 200 (object)

1 campo
  • tokenstringobrigatório
Exemplo de resposta
{
  "token": "texto"
}

Cancelar reserva

POST/organizations/{organizationId}/bookings/{id}/cancel

Permissão da chave: booking:update

Parâmetros do caminho

  • idstringobrigatório

    Identificador da reserva

Exemplo
curl -X POST "<endereço-da-api>/api/organizations/<id-da-agência>/bookings/<id>/cancel" \
  -H "Authorization: Bearer exc_live_<sua-chave>"

Resposta 200 (object)

12 campos
  • idstringobrigatório
  • statusstringobrigatório

    Valores: pendingconfirmedcancelledexpired

  • externalRefstringobrigatório

    pode ser vazio (null)

  • buyerNamestringobrigatório
  • departureIdstringobrigatório
  • titlestringobrigatório
  • startsAtstringobrigatório
  • buyerEmailstringobrigatório

    pode ser vazio (null)

  • buyerPhonestringobrigatório

    pode ser vazio (null)

  • buyerDocumentHintstringobrigatório

    pode ser vazio (null)

  • destinationstringobrigatório
  • offerSnapshotobjectobrigatório

    pode ser vazio (null)

    17 campos de offerSnapshot
    • titlestringobrigatório
    • destinationstringobrigatório
    • descriptionstringopcional
    • itinerarystringopcional
    • durationLabelstringopcional
    • includedSuppliersstringopcional
    • includedstringopcional
    • excludedstringopcional
    • restrictionsstringopcional
    • cancellationPolicystringopcional
    • meetingInstructionsstringopcional
    • startsAtstringobrigatório
    • fareobjectobrigatório

      pode ser vazio (null)

      3 campos de fare
      • namestringobrigatório
      • partySizenumberobrigatório
      • priceCentsnumberobrigatório

        valor em centavos

    • chargesarray<object>obrigatório
      3 campos de charges
      • namestringobrigatório
      • basisstringobrigatório

        Valores: bookingpassenger

      • priceCentsnumberobrigatório

        valor em centavos

    • lapInfantsobjectobrigatório
      2 campos de lapInfants
      • countnumberobrigatório
      • priceCentsnumberobrigatório

        valor em centavos

    • couponobjectopcional
      2 campos de coupon
      • codestringobrigatório
      • discountCentsnumberobrigatório

        valor em centavos

    • contractstringopcional
Exemplo de resposta
{
  "id": "texto",
  "status": "pending",
  "externalRef": "texto",
  "buyerName": "texto",
  "departureId": "<id>",
  "title": "texto",
  "startsAt": "texto",
  "buyerEmail": "texto",
  "buyerPhone": "texto",
  "buyerDocumentHint": "texto",
  "destination": "texto",
  "offerSnapshot": {
    "title": "texto",
    "destination": "texto",
    "description": "texto",
    "itinerary": "texto",
    "durationLabel": "texto",
    "includedSuppliers": "texto",
    "included": "texto",
    "excluded": "texto",
    "restrictions": "texto",
    "cancellationPolicy": "texto",
    "meetingInstructions": "texto",
    "startsAt": "texto",
    "fare": {
      "name": "texto",
      "partySize": 0,
      "priceCents": 0
    },
    "charges": [
      {
        "name": "texto",
        "basis": "booking",
        "priceCents": 0
      }
    ],
    "lapInfants": {
      "count": 0,
      "priceCents": 0
    },
    "coupon": {
      "code": "texto",
      "discountCents": 0
    },
    "contract": "texto"
  }
}

Cancelar reserva paga

POST/organizations/{organizationId}/bookings/{id}/cancel-paid

Permissão da chave: booking:update

Parâmetros do caminho

  • idstringobrigatório

    Identificador da reserva

Corpo (JSON)

  • reasonstringobrigatório

    5 a 1000 caracteres

  • refundDueCentsintegerobrigatório

    valor em centavos · 0 a 100000000

Exemplo
curl -X POST "<endereço-da-api>/api/organizations/<id-da-agência>/bookings/<id>/cancel-paid" \
  -H "Authorization: Bearer exc_live_<sua-chave>" \
  -H "Content-Type: application/json" \
  -d '{
  "reason": "texto",
  "refundDueCents": 0
}'

Resposta 200 (object)

12 campos
  • idstringobrigatório
  • statusstringobrigatório

    Valores: pendingconfirmedcancelledexpired

  • externalRefstringobrigatório

    pode ser vazio (null)

  • buyerNamestringobrigatório
  • departureIdstringobrigatório
  • titlestringobrigatório
  • startsAtstringobrigatório
  • buyerEmailstringobrigatório

    pode ser vazio (null)

  • buyerPhonestringobrigatório

    pode ser vazio (null)

  • buyerDocumentHintstringobrigatório

    pode ser vazio (null)

  • destinationstringobrigatório
  • offerSnapshotobjectobrigatório

    pode ser vazio (null)

    17 campos de offerSnapshot
    • titlestringobrigatório
    • destinationstringobrigatório
    • descriptionstringopcional
    • itinerarystringopcional
    • durationLabelstringopcional
    • includedSuppliersstringopcional
    • includedstringopcional
    • excludedstringopcional
    • restrictionsstringopcional
    • cancellationPolicystringopcional
    • meetingInstructionsstringopcional
    • startsAtstringobrigatório
    • fareobjectobrigatório

      pode ser vazio (null)

      3 campos de fare
      • namestringobrigatório
      • partySizenumberobrigatório
      • priceCentsnumberobrigatório

        valor em centavos

    • chargesarray<object>obrigatório
      3 campos de charges
      • namestringobrigatório
      • basisstringobrigatório

        Valores: bookingpassenger

      • priceCentsnumberobrigatório

        valor em centavos

    • lapInfantsobjectobrigatório
      2 campos de lapInfants
      • countnumberobrigatório
      • priceCentsnumberobrigatório

        valor em centavos

    • couponobjectopcional
      2 campos de coupon
      • codestringobrigatório
      • discountCentsnumberobrigatório

        valor em centavos

    • contractstringopcional
Exemplo de resposta
{
  "id": "texto",
  "status": "pending",
  "externalRef": "texto",
  "buyerName": "texto",
  "departureId": "<id>",
  "title": "texto",
  "startsAt": "texto",
  "buyerEmail": "texto",
  "buyerPhone": "texto",
  "buyerDocumentHint": "texto",
  "destination": "texto",
  "offerSnapshot": {
    "title": "texto",
    "destination": "texto",
    "description": "texto",
    "itinerary": "texto",
    "durationLabel": "texto",
    "includedSuppliers": "texto",
    "included": "texto",
    "excluded": "texto",
    "restrictions": "texto",
    "cancellationPolicy": "texto",
    "meetingInstructions": "texto",
    "startsAt": "texto",
    "fare": {
      "name": "texto",
      "partySize": 0,
      "priceCents": 0
    },
    "charges": [
      {
        "name": "texto",
        "basis": "booking",
        "priceCents": 0
      }
    ],
    "lapInfants": {
      "count": 0,
      "priceCents": 0
    },
    "coupon": {
      "code": "texto",
      "discountCents": 0
    },
    "contract": "texto"
  }
}

Gerar o link de pagamento da reserva

POST/organizations/{organizationId}/bookings/{id}/checkout

Permissão da chave: payment:create

Parâmetros do caminho

  • idstringobrigatório

    Identificador da reserva

Corpo (JSON)

  • amountCentsintegerobrigatório

    valor em centavos · acima de 0 a 100000000

  • idempotencyKeystringobrigatório

    UUID

  • installmentIdstringopcional

    até 100 caracteres

Exemplo
curl -X POST "<endereço-da-api>/api/organizations/<id-da-agência>/bookings/<id>/checkout" \
  -H "Authorization: Bearer exc_live_<sua-chave>" \
  -H "Content-Type: application/json" \
  -d '{
  "amountCents": 1,
  "idempotencyKey": "<uuid>"
}'

Resposta 200 (object)

2 campos
  • urlstringobrigatório
  • attemptIdstringobrigatório
Exemplo de resposta
{
  "url": "texto",
  "attemptId": "<id>"
}

Ver financeiro da reserva

GET/organizations/{organizationId}/bookings/{id}/finance

Permissão da chave: payment:read

Parâmetros do caminho

  • idstringobrigatório

    Identificador da reserva

Exemplo
curl "<endereço-da-api>/api/organizations/<id-da-agência>/bookings/<id>/finance" \
  -H "Authorization: Bearer exc_live_<sua-chave>"

Resposta 200 (object)

17 campos
  • statusstringobrigatório

    Valores: pendingconfirmedcancelledexpired

  • holdExpiresAtnumberobrigatório
  • checkoutStartedbooleanobrigatório
  • checkoutUrlstringobrigatório

    pode ser vazio (null)

  • totalCentsnumberobrigatório

    valor em centavos

  • discountCentsnumberobrigatório

    valor em centavos

  • offerSnapshotobjectobrigatório

    pode ser vazio (null)

    17 campos de offerSnapshot
    • titlestringobrigatório
    • destinationstringobrigatório
    • descriptionstringopcional
    • itinerarystringopcional
    • durationLabelstringopcional
    • includedSuppliersstringopcional
    • includedstringopcional
    • excludedstringopcional
    • restrictionsstringopcional
    • cancellationPolicystringopcional
    • meetingInstructionsstringopcional
    • startsAtstringobrigatório
    • fareobjectobrigatório

      pode ser vazio (null)

      3 campos de fare
      • namestringobrigatório
      • partySizenumberobrigatório
      • priceCentsnumberobrigatório

        valor em centavos

    • chargesarray<object>obrigatório
      3 campos de charges
      • namestringobrigatório
      • basisstringobrigatório

        Valores: bookingpassenger

      • priceCentsnumberobrigatório

        valor em centavos

    • lapInfantsobjectobrigatório
      2 campos de lapInfants
      • countnumberobrigatório
      • priceCentsnumberobrigatório

        valor em centavos

    • couponobjectopcional
      2 campos de coupon
      • codestringobrigatório
      • discountCentsnumberobrigatório

        valor em centavos

    • contractstringopcional
  • contractAcceptanceobjectobrigatório

    pode ser vazio (null)

    3 campos de contractAcceptance
    • acceptedNamestringobrigatório
    • channelstringobrigatório

      Valores: checkoutbooking_link

    • acceptedAtnumberobrigatório
  • paidCentsnumberobrigatório

    valor em centavos

  • refundedCentsnumberobrigatório

    valor em centavos

  • refundDueCentsnumberobrigatório

    valor em centavos

  • cancellationReasonstringobrigatório

    pode ser vazio (null)

  • balanceCentsnumberobrigatório

    valor em centavos

  • creditCentsnumberobrigatório

    valor em centavos

  • installmentsarray<object>obrigatório
    5 campos de installments
    • idstringobrigatório
    • dueDatestringobrigatório
    • amountCentsnumberobrigatório

      valor em centavos

    • allocatedCentsnumberobrigatório

      valor em centavos

    • checkoutUrlstringobrigatório

      pode ser vazio (null)

  • paymentsarray<object>obrigatório
    5 campos de payments
    • idstringobrigatório
    • sourcestringobrigatório

      Valores: providermanual

    • methodstringobrigatório
    • amountCentsintegerobrigatório

      valor em centavos · -9007199254740991 a 9007199254740991

    • receivedAtintegerobrigatório

      -9007199254740991 a 9007199254740991

  • refundsarray<object>obrigatório
    5 campos de refunds
    • idstringobrigatório
    • amountCentsintegerobrigatório

      valor em centavos · -9007199254740991 a 9007199254740991

    • methodstringobrigatório
    • referencestringobrigatório
    • refundedAtintegerobrigatório

      -9007199254740991 a 9007199254740991

Exemplo de resposta
{
  "status": "pending",
  "holdExpiresAt": 0,
  "checkoutStarted": true,
  "checkoutUrl": "texto",
  "totalCents": 0,
  "discountCents": 0,
  "offerSnapshot": {
    "title": "texto",
    "destination": "texto",
    "description": "texto",
    "itinerary": "texto",
    "durationLabel": "texto",
    "includedSuppliers": "texto",
    "included": "texto",
    "excluded": "texto",
    "restrictions": "texto",
    "cancellationPolicy": "texto",
    "meetingInstructions": "texto",
    "startsAt": "texto",
    "fare": {
      "name": "texto",
      "partySize": 0,
      "priceCents": 0
    },
    "charges": [
      {
        "name": "texto",
        "basis": "booking",
        "priceCents": 0
      }
    ],
    "lapInfants": {
      "count": 0,
      "priceCents": 0
    },
    "coupon": {
      "code": "texto",
      "discountCents": 0
    },
    "contract": "texto"
  },
  "contractAcceptance": {
    "acceptedName": "texto",
    "channel": "checkout",
    "acceptedAt": 0
  },
  "paidCents": 0,
  "refundedCents": 0,
  "refundDueCents": 0,
  "cancellationReason": "texto",
  "balanceCents": 0,
  "creditCents": 0,
  "installments": [
    {
      "id": "texto",
      "dueDate": "texto",
      "amountCents": 0,
      "allocatedCents": 0,
      "checkoutUrl": "texto"
    }
  ],
  "payments": [
    {
      "id": "texto",
      "source": "provider",
      "method": "texto",
      "amountCents": -9007199254740991,
      "receivedAt": -9007199254740991
    }
  ],
  "refunds": [
    {
      "id": "texto",
      "amountCents": -9007199254740991,
      "method": "texto",
      "reference": "texto",
      "refundedAt": -9007199254740991
    }
  ]
}

Ver opções de passageiros da reserva

GET/organizations/{organizationId}/bookings/{id}/passenger-options

Permissão da chave: passenger:read

Parâmetros do caminho

  • idstringobrigatório

    Identificador da reserva

Exemplo
curl "<endereço-da-api>/api/organizations/<id-da-agência>/bookings/<id>/passenger-options" \
  -H "Authorization: Bearer exc_live_<sua-chave>"

Resposta 200 (object)

5 campos
  • idstringobrigatório
  • seatSelectionEnabledbooleanobrigatório
  • seatLayoutobjectobrigatório

    pode ser vazio (null)

    1 campo de seatLayout
    • seatsarray<object>obrigatório

      1 a 100 itens

      4 campos de seats
      • labelstringobrigatório

        até 20 caracteres

      • rowintegerobrigatório

        1 a 100

      • columnintegerobrigatório

        1 a 10

      • blockedbooleanobrigatório
  • boardingPointsarray<object>obrigatório
    7 campos de boardingPoints
    • idstringobrigatório
    • departureIdstringobrigatório
    • namestringobrigatório
    • addressstringobrigatório
    • boardingAtstringobrigatório
    • returnAtstringobrigatório

      pode ser vazio (null)

    • referencestringobrigatório

      pode ser vazio (null)

  • occupiedarray<object>obrigatório
    2 campos de occupied
    • labelstringobrigatório
    • passengerIdstringobrigatório

      pode ser vazio (null)

Exemplo de resposta
{
  "id": "texto",
  "seatSelectionEnabled": true,
  "seatLayout": {
    "seats": [
      {
        "label": "texto",
        "row": 1,
        "column": 1,
        "blocked": true
      }
    ]
  },
  "boardingPoints": [
    {
      "id": "texto",
      "departureId": "<id>",
      "name": "texto",
      "address": "texto",
      "boardingAt": "texto",
      "returnAt": "texto",
      "reference": "texto"
    }
  ],
  "occupied": [
    {
      "label": "texto",
      "passengerId": "<id>"
    }
  ]
}

Listar passageiros da reserva

GET/organizations/{organizationId}/bookings/{id}/passengers

Permissão da chave: passenger:read

Parâmetros do caminho

  • idstringobrigatório

    Identificador da reserva

Parâmetros de consulta

  • pageintegeropcional

    1 a 100000 · padrão 1

  • sizeintegeropcional

    1 a 100 · padrão 20

  • searchstringopcional

    até 100 caracteres · padrão ""

Exemplo
curl "<endereço-da-api>/api/organizations/<id-da-agência>/bookings/<id>/passengers" \
  -H "Authorization: Bearer exc_live_<sua-chave>"

Resposta 200 (object)

2 campos
  • itemsarray<object>obrigatório
    9 campos de items
    • idstringobrigatório
    • namestringobrigatório
    • boardingPointIdstringobrigatório

      pode ser vazio (null)

    • boardingPointNamestringobrigatório

      pode ser vazio (null)

    • seatLabelstringobrigatório

      pode ser vazio (null)

    • documentTypestringobrigatório

      pode ser vazio (null)

      Valores: cpfrgpassportbirth-certificate

    • documentHintstringobrigatório

      pode ser vazio (null)

    • birthDatestringobrigatório

      pode ser vazio (null)

    • lapInfantbooleanobrigatório
  • paginationobjectobrigatório
    4 campos de pagination
    • pageintegerobrigatório

      1 a 9007199254740991

    • sizeintegerobrigatório

      1 a 9007199254740991

    • totalintegerobrigatório

      0 a 9007199254740991

    • pagesintegerobrigatório

      0 a 9007199254740991

Exemplo de resposta
{
  "items": [
    {
      "id": "texto",
      "name": "texto",
      "boardingPointId": "<id>",
      "boardingPointName": "texto",
      "seatLabel": "texto",
      "documentType": "cpf",
      "documentHint": "texto",
      "birthDate": "texto",
      "lapInfant": true
    }
  ],
  "pagination": {
    "page": 1,
    "size": 1,
    "total": 0,
    "pages": 0
  }
}

Editar passageiro da reserva

PATCH/organizations/{organizationId}/bookings/{id}/passengers/{passengerId}

Permissão da chave: passenger:update

Parâmetros do caminho

  • idstringobrigatório

    Identificador da reserva

  • passengerIdstringobrigatório

    Identificador do passageiro

Corpo (JSON)

  • namestringopcional

    2 a 150 caracteres

  • boardingPointIdstringopcional

    até 200 caracteres · pode ser vazio (null)

  • seatLabelstringopcional

    até 20 caracteres · pode ser vazio (null)

  • documentobjectopcional
    4 campos de document
    • typestringobrigatório

      Valores: cpfrgpassportbirth-certificate

    • numberstringobrigatório

      5 a 40 caracteres

    • issuerstringopcional

      até 20 caracteres

    • issuerStatestringopcional

      Valores: ACALAMAPBACEDFESGOMAMGMSMTPAPBPEPIPRRJRNRORRRSSCSESPTO

  • birthDatestringopcional

    data AAAA-MM-DD

Exemplo
curl -X PATCH "<endereço-da-api>/api/organizations/<id-da-agência>/bookings/<id>/passengers/<passengerId>" \
  -H "Authorization: Bearer exc_live_<sua-chave>" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "texto",
  "boardingPointId": "<id>",
  "seatLabel": "texto"
}'

Resposta 200 (object)

9 campos
  • idstringobrigatório
  • namestringobrigatório
  • boardingPointIdstringobrigatório

    pode ser vazio (null)

  • boardingPointNamestringobrigatório

    pode ser vazio (null)

  • seatLabelstringobrigatório

    pode ser vazio (null)

  • documentTypestringobrigatório

    pode ser vazio (null)

    Valores: cpfrgpassportbirth-certificate

  • documentHintstringobrigatório

    pode ser vazio (null)

  • birthDatestringobrigatório

    pode ser vazio (null)

  • lapInfantbooleanobrigatório
Exemplo de resposta
{
  "id": "texto",
  "name": "texto",
  "boardingPointId": "<id>",
  "boardingPointName": "texto",
  "seatLabel": "texto",
  "documentType": "cpf",
  "documentHint": "texto",
  "birthDate": "texto",
  "lapInfant": true
}

Registrar pagamento da reserva

POST/organizations/{organizationId}/bookings/{id}/payments

Permissão da chave: payment:create

Parâmetros do caminho

  • idstringobrigatório

    Identificador da reserva

Corpo (JSON)

  • amountCentsintegerobrigatório

    valor em centavos · acima de 0 a 100000000

  • manualReferencestringobrigatório

    UUID

  • methodstringobrigatório
Exemplo
curl -X POST "<endereço-da-api>/api/organizations/<id-da-agência>/bookings/<id>/payments" \
  -H "Authorization: Bearer exc_live_<sua-chave>" \
  -H "Content-Type: application/json" \
  -d '{
  "amountCents": 1,
  "manualReference": "<uuid>",
  "method": "texto"
}'

Resposta 201 (object)

5 campos
  • idstringobrigatório
  • sourcestringobrigatório

    Valores: providermanual

  • methodstringobrigatório
  • amountCentsintegerobrigatório

    valor em centavos · -9007199254740991 a 9007199254740991

  • receivedAtintegerobrigatório

    -9007199254740991 a 9007199254740991

Exemplo de resposta
{
  "id": "texto",
  "source": "provider",
  "method": "texto",
  "amountCents": -9007199254740991,
  "receivedAt": -9007199254740991
}

Registrar estorno da reserva

POST/organizations/{organizationId}/bookings/{id}/refunds

Permissão da chave: payment:refund

Parâmetros do caminho

  • idstringobrigatório

    Identificador da reserva

Corpo (JSON)

  • amountCentsintegerobrigatório

    valor em centavos · acima de 0 a 100000000

  • methodstringobrigatório

    2 a 80 caracteres

  • referencestringobrigatório

    3 a 120 caracteres

Exemplo
curl -X POST "<endereço-da-api>/api/organizations/<id-da-agência>/bookings/<id>/refunds" \
  -H "Authorization: Bearer exc_live_<sua-chave>" \
  -H "Content-Type: application/json" \
  -d '{
  "amountCents": 1,
  "method": "texto",
  "reference": "texto"
}'

Resposta 201 (object)

5 campos
  • idstringobrigatório
  • amountCentsintegerobrigatório

    valor em centavos · -9007199254740991 a 9007199254740991

  • methodstringobrigatório
  • referencestringobrigatório
  • refundedAtintegerobrigatório

    -9007199254740991 a 9007199254740991

Exemplo de resposta
{
  "id": "texto",
  "amountCents": -9007199254740991,
  "method": "texto",
  "reference": "texto",
  "refundedAt": -9007199254740991
}

Revogar o link de acesso da reserva

POST/organizations/{organizationId}/bookings/{id}/revoke-access

Permissão da chave: booking:update

Parâmetros do caminho

  • idstringobrigatório

    Identificador da reserva

Exemplo
curl -X POST "<endereço-da-api>/api/organizations/<id-da-agência>/bookings/<id>/revoke-access" \
  -H "Authorization: Bearer exc_live_<sua-chave>"

Resposta 204 sem conteúdo

Gerar voucher da reserva

POST/organizations/{organizationId}/bookings/{id}/voucher

Permissão da chave: booking:read

Parâmetros do caminho

  • idstringobrigatório

    Identificador da reserva

Exemplo
curl -X POST "<endereço-da-api>/api/organizations/<id-da-agência>/bookings/<id>/voucher" \
  -H "Authorization: Bearer exc_live_<sua-chave>"

Resposta 200 (object)

1 campo
  • tokenstringobrigatório
Exemplo de resposta
{
  "token": "texto"
}

Viajantes

Listar viajantes

GET/organizations/{organizationId}/travelers

Permissão da chave: passenger:read

Parâmetros de consulta

  • pageintegeropcional

    1 a 100000 · padrão 1

  • sizeintegeropcional

    1 a 100 · padrão 20

  • searchstringopcional

    até 100 caracteres · padrão ""

  • externalRefstringopcional

    até 120 caracteres

Exemplo
curl "<endereço-da-api>/api/organizations/<id-da-agência>/travelers" \
  -H "Authorization: Bearer exc_live_<sua-chave>"

Resposta 200 (object)

2 campos
  • itemsarray<object>obrigatório
    11 campos de items
    • idstringobrigatório
    • namestringobrigatório
    • emailstringobrigatório

      pode ser vazio (null)

    • phonestringobrigatório

      pode ser vazio (null)

    • birthDatestringobrigatório

      pode ser vazio (null)

    • documentTypestringobrigatório

      pode ser vazio (null)

      Valores: cpfrgpassportbirth-certificate

    • documentHintstringobrigatório

      pode ser vazio (null)

    • externalRefstringobrigatório

      pode ser vazio (null)

    • emergencyContactobjectobrigatório

      pode ser vazio (null)

      2 campos de emergencyContact
      • namestringobrigatório
      • phonestringobrigatório
    • bookingsintegerobrigatório

      0 a 9007199254740991

    • lastTripAtstringobrigatório

      pode ser vazio (null)

  • paginationobjectobrigatório
    4 campos de pagination
    • pageintegerobrigatório

      1 a 9007199254740991

    • sizeintegerobrigatório

      1 a 9007199254740991

    • totalintegerobrigatório

      0 a 9007199254740991

    • pagesintegerobrigatório

      0 a 9007199254740991

Exemplo de resposta
{
  "items": [
    {
      "id": "texto",
      "name": "texto",
      "email": "texto",
      "phone": "texto",
      "birthDate": "texto",
      "documentType": "cpf",
      "documentHint": "texto",
      "externalRef": "texto",
      "emergencyContact": {
        "name": "texto",
        "phone": "texto"
      },
      "bookings": 0,
      "lastTripAt": "texto"
    }
  ],
  "pagination": {
    "page": 1,
    "size": 1,
    "total": 0,
    "pages": 0
  }
}

Criar viajante

POST/organizations/{organizationId}/travelers

Permissão da chave: passenger:update

Corpo (JSON)

  • namestringobrigatório

    2 a 150 caracteres

  • emailstringopcional

    pode ser vazio (null)

  • phonestringopcional

    pode ser vazio (null)

  • birthDatestringopcional

    data AAAA-MM-DD · pode ser vazio (null)

  • documentobjectopcional

    pode ser vazio (null)

    4 campos de document
    • typestringobrigatório

      Valores: cpfrgpassportbirth-certificate

    • numberstringobrigatório

      5 a 40 caracteres

    • issuerstringopcional

      até 20 caracteres

    • issuerStatestringopcional

      Valores: ACALAMAPBACEDFESGOMAMGMSMTPAPBPEPIPRRJRNRORRRSSCSESPTO

  • externalRefstringopcional

    até 120 caracteres · pode ser vazio (null)

  • emergencyContactobjectopcional

    pode ser vazio (null)

    2 campos de emergencyContact
    • namestringobrigatório

      2 a 150 caracteres

    • phonestringobrigatório
Exemplo
curl -X POST "<endereço-da-api>/api/organizations/<id-da-agência>/travelers" \
  -H "Authorization: Bearer exc_live_<sua-chave>" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "texto"
}'

Resposta 201 (object)

11 campos
  • idstringobrigatório
  • namestringobrigatório
  • emailstringobrigatório

    pode ser vazio (null)

  • phonestringobrigatório

    pode ser vazio (null)

  • birthDatestringobrigatório

    pode ser vazio (null)

  • documentTypestringobrigatório

    pode ser vazio (null)

    Valores: cpfrgpassportbirth-certificate

  • documentHintstringobrigatório

    pode ser vazio (null)

  • externalRefstringobrigatório

    pode ser vazio (null)

  • emergencyContactobjectobrigatório

    pode ser vazio (null)

    2 campos de emergencyContact
    • namestringobrigatório
    • phonestringobrigatório
  • bookingsintegerobrigatório

    0 a 9007199254740991

  • lastTripAtstringobrigatório

    pode ser vazio (null)

Exemplo de resposta
{
  "id": "texto",
  "name": "texto",
  "email": "texto",
  "phone": "texto",
  "birthDate": "texto",
  "documentType": "cpf",
  "documentHint": "texto",
  "externalRef": "texto",
  "emergencyContact": {
    "name": "texto",
    "phone": "texto"
  },
  "bookings": 0,
  "lastTripAt": "texto"
}

Ver viajante

GET/organizations/{organizationId}/travelers/{id}

Permissão da chave: passenger:read

Parâmetros do caminho

  • idstringobrigatório

    Identificador do viajante

Exemplo
curl "<endereço-da-api>/api/organizations/<id-da-agência>/travelers/<id>" \
  -H "Authorization: Bearer exc_live_<sua-chave>"

Resposta 200 (object)

12 campos
  • idstringobrigatório
  • namestringobrigatório
  • emailstringobrigatório

    pode ser vazio (null)

  • phonestringobrigatório

    pode ser vazio (null)

  • birthDatestringobrigatório

    pode ser vazio (null)

  • documentTypestringobrigatório

    pode ser vazio (null)

    Valores: cpfrgpassportbirth-certificate

  • documentHintstringobrigatório

    pode ser vazio (null)

  • externalRefstringobrigatório

    pode ser vazio (null)

  • emergencyContactobjectobrigatório

    pode ser vazio (null)

    2 campos de emergencyContact
    • namestringobrigatório
    • phonestringobrigatório
  • bookingsintegerobrigatório

    0 a 9007199254740991

  • lastTripAtstringobrigatório

    pode ser vazio (null)

  • tripsarray<object>obrigatório
    6 campos de trips
    • bookingIdstringobrigatório
    • rolestringobrigatório

      Valores: buyerpassenger

    • titlestringobrigatório
    • startsAtstringobrigatório
    • statusstringobrigatório

      Valores: pendingconfirmedcancelledexpired

    • totalCentsintegerobrigatório

      valor em centavos · -9007199254740991 a 9007199254740991

Exemplo de resposta
{
  "id": "texto",
  "name": "texto",
  "email": "texto",
  "phone": "texto",
  "birthDate": "texto",
  "documentType": "cpf",
  "documentHint": "texto",
  "externalRef": "texto",
  "emergencyContact": {
    "name": "texto",
    "phone": "texto"
  },
  "bookings": 0,
  "lastTripAt": "texto",
  "trips": [
    {
      "bookingId": "<id>",
      "role": "buyer",
      "title": "texto",
      "startsAt": "texto",
      "status": "pending",
      "totalCents": -9007199254740991
    }
  ]
}

Editar viajante

PATCH/organizations/{organizationId}/travelers/{id}

Permissão da chave: passenger:update

Parâmetros do caminho

  • idstringobrigatório

    Identificador do viajante

Corpo (JSON)

  • namestringopcional

    2 a 150 caracteres

  • emailstringopcional

    pode ser vazio (null)

  • phonestringopcional

    pode ser vazio (null)

  • birthDatestringopcional

    data AAAA-MM-DD · pode ser vazio (null)

  • documentobjectopcional

    pode ser vazio (null)

    4 campos de document
    • typestringobrigatório

      Valores: cpfrgpassportbirth-certificate

    • numberstringobrigatório

      5 a 40 caracteres

    • issuerstringopcional

      até 20 caracteres

    • issuerStatestringopcional

      Valores: ACALAMAPBACEDFESGOMAMGMSMTPAPBPEPIPRRJRNRORRRSSCSESPTO

  • externalRefstringopcional

    até 120 caracteres · pode ser vazio (null)

  • emergencyContactobjectopcional

    pode ser vazio (null)

    2 campos de emergencyContact
    • namestringobrigatório

      2 a 150 caracteres

    • phonestringobrigatório
Exemplo
curl -X PATCH "<endereço-da-api>/api/organizations/<id-da-agência>/travelers/<id>" \
  -H "Authorization: Bearer exc_live_<sua-chave>" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "texto",
  "email": "texto",
  "phone": "texto"
}'

Resposta 200 (object)

11 campos
  • idstringobrigatório
  • namestringobrigatório
  • emailstringobrigatório

    pode ser vazio (null)

  • phonestringobrigatório

    pode ser vazio (null)

  • birthDatestringobrigatório

    pode ser vazio (null)

  • documentTypestringobrigatório

    pode ser vazio (null)

    Valores: cpfrgpassportbirth-certificate

  • documentHintstringobrigatório

    pode ser vazio (null)

  • externalRefstringobrigatório

    pode ser vazio (null)

  • emergencyContactobjectobrigatório

    pode ser vazio (null)

    2 campos de emergencyContact
    • namestringobrigatório
    • phonestringobrigatório
  • bookingsintegerobrigatório

    0 a 9007199254740991

  • lastTripAtstringobrigatório

    pode ser vazio (null)

Exemplo de resposta
{
  "id": "texto",
  "name": "texto",
  "email": "texto",
  "phone": "texto",
  "birthDate": "texto",
  "documentType": "cpf",
  "documentHint": "texto",
  "externalRef": "texto",
  "emergencyContact": {
    "name": "texto",
    "phone": "texto"
  },
  "bookings": 0,
  "lastTripAt": "texto"
}

Ver documento do viajante

GET/organizations/{organizationId}/travelers/{id}/document

Permissão da chave: passenger:read

Parâmetros do caminho

  • idstringobrigatório

    Identificador do viajante

Exemplo
curl "<endereço-da-api>/api/organizations/<id-da-agência>/travelers/<id>/document" \
  -H "Authorization: Bearer exc_live_<sua-chave>"

Resposta 200 (object)

1 campo
  • documentobjectobrigatório

    pode ser vazio (null)

    4 campos de document
    • typestringobrigatório

      Valores: cpfrgpassportbirth-certificate

    • numberstringobrigatório

      5 a 40 caracteres

    • issuerstringopcional

      2 a 20 caracteres

    • issuerStatestringopcional

      Valores: ACALAMAPBACEDFESGOMAMGMSMTPAPBPEPIPRRJRNRORRRSSCSESPTO

Exemplo de resposta
{
  "document": {
    "type": "cpf",
    "number": "texto",
    "issuer": "texto",
    "issuerState": "AC"
  }
}

Operação

Listar saídas

GET/organizations/{organizationId}/operations/departures

Permissão da chave: departure:read

Parâmetros de consulta

  • pageintegeropcional

    1 a 100000 · padrão 1

  • sizeintegeropcional

    1 a 100 · padrão 20

  • searchstringopcional

    até 100 caracteres · padrão ""

  • statusstringopcional

    Valores: draftpublishedclosedcancelled

  • periodstringopcional

    padrão "upcoming"

    Valores: todayupcomingpastall

Exemplo
curl "<endereço-da-api>/api/organizations/<id-da-agência>/operations/departures" \
  -H "Authorization: Bearer exc_live_<sua-chave>"

Resposta 200 (object)

2 campos
  • itemsarray<object>obrigatório
    6 campos de items
    • idstringobrigatório
    • excursionIdstringobrigatório
    • titlestringobrigatório
    • destinationstringobrigatório
    • startsAtstringobrigatório
    • statusstringobrigatório

      Valores: draftpublishedclosedcancelled

  • paginationobjectobrigatório
    4 campos de pagination
    • pageintegerobrigatório

      1 a 9007199254740991

    • sizeintegerobrigatório

      1 a 9007199254740991

    • totalintegerobrigatório

      0 a 9007199254740991

    • pagesintegerobrigatório

      0 a 9007199254740991

Exemplo de resposta
{
  "items": [
    {
      "id": "texto",
      "excursionId": "<id>",
      "title": "texto",
      "destination": "texto",
      "startsAt": "texto",
      "status": "draft"
    }
  ],
  "pagination": {
    "page": 1,
    "size": 1,
    "total": 0,
    "pages": 0
  }
}

Registrar embarque do passageiro da saída

POST/organizations/{organizationId}/operations/departures/{id}/check-ins/{passengerId}

Permissão da chave: checkin:manage

Parâmetros do caminho

  • idstringobrigatório

    Identificador da saída

  • passengerIdstringobrigatório

    Identificador do embarque do passageiro

Exemplo
curl -X POST "<endereço-da-api>/api/organizations/<id-da-agência>/operations/departures/<id>/check-ins/<passengerId>" \
  -H "Authorization: Bearer exc_live_<sua-chave>"

Resposta 200 (object)

2 campos
  • checkedInbooleanobrigatório

    sempre true

  • checkedInAtintegerobrigatório

    -9007199254740991 a 9007199254740991

Exemplo de resposta
{
  "checkedIn": true,
  "checkedInAt": -9007199254740991
}

Ver manifesto da saída

GET/organizations/{organizationId}/operations/departures/{id}/manifest

Permissão da chave: checkin:read

Parâmetros do caminho

  • idstringobrigatório

    Identificador da saída

Parâmetros de consulta

  • pageintegeropcional

    1 a 100000 · padrão 1

  • sizeintegeropcional

    1 a 100 · padrão 20

  • searchstringopcional

    até 100 caracteres · padrão ""

Exemplo
curl "<endereço-da-api>/api/organizations/<id-da-agência>/operations/departures/<id>/manifest" \
  -H "Authorization: Bearer exc_live_<sua-chave>"

Resposta 200 (object)

3 campos
  • itemsarray<object>obrigatório
    12 campos de items
    • idstringobrigatório
    • namestringobrigatório
    • bookingIdstringobrigatório
    • buyerNamestringobrigatório
    • buyerPhonestringobrigatório

      pode ser vazio (null)

    • bookingStatusstringobrigatório

      Valores: pendingconfirmedcancelledexpired

    • boardingPointNamestringobrigatório

      pode ser vazio (null)

    • seatLabelstringobrigatório

      pode ser vazio (null)

    • checkedInAtintegerobrigatório

      -9007199254740991 a 9007199254740991 · pode ser vazio (null)

    • documentTypestringobrigatório

      pode ser vazio (null)

      Valores: cpfrgpassportbirth-certificate

    • documentHintstringobrigatório

      pode ser vazio (null)

    • lapInfantbooleanobrigatório
  • paginationobjectobrigatório
    4 campos de pagination
    • pageintegerobrigatório

      1 a 9007199254740991

    • sizeintegerobrigatório

      1 a 9007199254740991

    • totalintegerobrigatório

      0 a 9007199254740991

    • pagesintegerobrigatório

      0 a 9007199254740991

  • departureobjectobrigatório
    3 campos de departure
    • idstringobrigatório
    • titlestringobrigatório
    • startsAtstringobrigatório
Exemplo de resposta
{
  "items": [
    {
      "id": "texto",
      "name": "texto",
      "bookingId": "<id>",
      "buyerName": "texto",
      "buyerPhone": "texto",
      "bookingStatus": "pending",
      "boardingPointName": "texto",
      "seatLabel": "texto",
      "checkedInAt": -9007199254740991,
      "documentType": "cpf",
      "documentHint": "texto",
      "lapInfant": true
    }
  ],
  "pagination": {
    "page": 1,
    "size": 1,
    "total": 0,
    "pages": 0
  },
  "departure": {
    "id": "texto",
    "title": "texto",
    "startsAt": "texto"
  }
}

Ver documentos dos passageiros da saída

GET/organizations/{organizationId}/operations/departures/{id}/passenger-documents

Permissão da chave: passenger:read

Parâmetros do caminho

  • idstringobrigatório

    Identificador da saída

Parâmetros de consulta

  • pageintegeropcional

    1 a 100000 · padrão 1

  • sizeintegeropcional

    1 a 100 · padrão 20

  • searchstringopcional

    até 100 caracteres · padrão ""

Exemplo
curl "<endereço-da-api>/api/organizations/<id-da-agência>/operations/departures/<id>/passenger-documents" \
  -H "Authorization: Bearer exc_live_<sua-chave>"

Resposta 200 (object)

2 campos
  • itemsarray<object>obrigatório
    2 campos de items
    • passengerIdstringobrigatório
    • documentstringobrigatório
  • paginationobjectobrigatório
    4 campos de pagination
    • pageintegerobrigatório

      1 a 9007199254740991

    • sizeintegerobrigatório

      1 a 9007199254740991

    • totalintegerobrigatório

      0 a 9007199254740991

    • pagesintegerobrigatório

      0 a 9007199254740991

Exemplo de resposta
{
  "items": [
    {
      "passengerId": "<id>",
      "document": "texto"
    }
  ],
  "pagination": {
    "page": 1,
    "size": 1,
    "total": 0,
    "pages": 0
  }
}

Ver lista de passageiros da saída

GET/organizations/{organizationId}/operations/departures/{id}/passenger-list

Permissão da chave: passenger:read

Parâmetros do caminho

  • idstringobrigatório

    Identificador da saída

Exemplo
curl "<endereço-da-api>/api/organizations/<id-da-agência>/operations/departures/<id>/passenger-list" \
  -H "Authorization: Bearer exc_live_<sua-chave>"

Resposta 200 (object)

3 campos
  • departureobjectobrigatório
    2 campos de departure
    • titlestringobrigatório
    • startsAtstringobrigatório
  • entriesarray<object>obrigatório
    7 campos de entries
    • passengerIdstringobrigatório
    • namestringobrigatório
    • documentobjectobrigatório

      pode ser vazio (null)

      4 campos de document
      • typestringobrigatório

        Valores: cpfrgpassportbirth-certificate

      • numberstringobrigatório

        5 a 40 caracteres

      • issuerstringopcional

        2 a 20 caracteres

      • issuerStatestringopcional

        Valores: ACALAMAPBACEDFESGOMAMGMSMTPAPBPEPIPRRJRNRORRRSSCSESPTO

    • birthDatestringobrigatório

      pode ser vazio (null)

    • lapInfantbooleanobrigatório
    • seatLabelstringobrigatório

      pode ser vazio (null)

    • boardingPointstringobrigatório

      pode ser vazio (null)

  • frozenobjectobrigatório

    pode ser vazio (null)

    6 campos de frozen
    • idstringobrigatório
    • versionintegerobrigatório

      1 a 9007199254740991

    • frozenAtintegerobrigatório

      -9007199254740991 a 9007199254740991

    • passengerCountintegerobrigatório

      0 a 9007199254740991

    • tokenstringobrigatório
    • changesobjectobrigatório
      7 campos de changes
      • addedarray<string>obrigatório
      • removedarray<string>obrigatório
      • substitutedarray<string>obrigatório
      • correctedarray<string>obrigatório
      • countedintegerobrigatório

        0 a 9007199254740991

      • limitintegerobrigatório

        0 a 9007199254740991

      • exceededbooleanobrigatório
Exemplo de resposta
{
  "departure": {
    "title": "texto",
    "startsAt": "texto"
  },
  "entries": [
    {
      "passengerId": "<id>",
      "name": "texto",
      "document": {
        "type": "cpf",
        "number": "texto",
        "issuer": "texto",
        "issuerState": "AC"
      },
      "birthDate": "texto",
      "lapInfant": true,
      "seatLabel": "texto",
      "boardingPoint": "texto"
    }
  ],
  "frozen": {
    "id": "texto",
    "version": 1,
    "frozenAt": -9007199254740991,
    "passengerCount": 0,
    "token": "texto",
    "changes": {
      "added": [
        "texto"
      ],
      "removed": [
        "texto"
      ],
      "substituted": [
        "texto"
      ],
      "corrected": [
        "texto"
      ],
      "counted": 0,
      "limit": 0,
      "exceeded": true
    }
  }
}

Gerar lista de passageiros da saída

POST/organizations/{organizationId}/operations/departures/{id}/passenger-list

Permissão da chave: passenger:update

Parâmetros do caminho

  • idstringobrigatório

    Identificador da saída

Exemplo
curl -X POST "<endereço-da-api>/api/organizations/<id-da-agência>/operations/departures/<id>/passenger-list" \
  -H "Authorization: Bearer exc_live_<sua-chave>"

Resposta 201 (object)

3 campos
  • departureobjectobrigatório
    2 campos de departure
    • titlestringobrigatório
    • startsAtstringobrigatório
  • entriesarray<object>obrigatório
    7 campos de entries
    • passengerIdstringobrigatório
    • namestringobrigatório
    • documentobjectobrigatório

      pode ser vazio (null)

      4 campos de document
      • typestringobrigatório

        Valores: cpfrgpassportbirth-certificate

      • numberstringobrigatório

        5 a 40 caracteres

      • issuerstringopcional

        2 a 20 caracteres

      • issuerStatestringopcional

        Valores: ACALAMAPBACEDFESGOMAMGMSMTPAPBPEPIPRRJRNRORRRSSCSESPTO

    • birthDatestringobrigatório

      pode ser vazio (null)

    • lapInfantbooleanobrigatório
    • seatLabelstringobrigatório

      pode ser vazio (null)

    • boardingPointstringobrigatório

      pode ser vazio (null)

  • frozenobjectobrigatório

    pode ser vazio (null)

    6 campos de frozen
    • idstringobrigatório
    • versionintegerobrigatório

      1 a 9007199254740991

    • frozenAtintegerobrigatório

      -9007199254740991 a 9007199254740991

    • passengerCountintegerobrigatório

      0 a 9007199254740991

    • tokenstringobrigatório
    • changesobjectobrigatório
      7 campos de changes
      • addedarray<string>obrigatório
      • removedarray<string>obrigatório
      • substitutedarray<string>obrigatório
      • correctedarray<string>obrigatório
      • countedintegerobrigatório

        0 a 9007199254740991

      • limitintegerobrigatório

        0 a 9007199254740991

      • exceededbooleanobrigatório
Exemplo de resposta
{
  "departure": {
    "title": "texto",
    "startsAt": "texto"
  },
  "entries": [
    {
      "passengerId": "<id>",
      "name": "texto",
      "document": {
        "type": "cpf",
        "number": "texto",
        "issuer": "texto",
        "issuerState": "AC"
      },
      "birthDate": "texto",
      "lapInfant": true,
      "seatLabel": "texto",
      "boardingPoint": "texto"
    }
  ],
  "frozen": {
    "id": "texto",
    "version": 1,
    "frozenAt": -9007199254740991,
    "passengerCount": 0,
    "token": "texto",
    "changes": {
      "added": [
        "texto"
      ],
      "removed": [
        "texto"
      ],
      "substituted": [
        "texto"
      ],
      "corrected": [
        "texto"
      ],
      "counted": 0,
      "limit": 0,
      "exceeded": true
    }
  }
}

Financeiro

Ver financeiro da saída

GET/organizations/{organizationId}/finance/departures/{id}

Permissão da chave: finance:read

Parâmetros do caminho

  • idstringobrigatório

    Identificador da saída

Parâmetros de consulta

  • pageintegeropcional

    1 a 100000 · padrão 1

  • sizeintegeropcional

    1 a 100 · padrão 20

  • searchstringopcional

    até 100 caracteres · padrão ""

  • statusstringopcional

    Valores: openpartialpaidoverdue

Exemplo
curl "<endereço-da-api>/api/organizations/<id-da-agência>/finance/departures/<id>" \
  -H "Authorization: Bearer exc_live_<sua-chave>"

Resposta 200 (object)

4 campos
  • itemsarray<object>obrigatório
    10 campos de items
    • idstringobrigatório
    • buyerNamestringobrigatório
    • buyerPhonestringobrigatório

      pode ser vazio (null)

    • bookingStatusstringobrigatório

      Valores: pendingconfirmedcancelledexpired

    • totalCentsintegerobrigatório

      valor em centavos · -9007199254740991 a 9007199254740991

    • paidCentsintegerobrigatório

      valor em centavos · -9007199254740991 a 9007199254740991

    • balanceCentsintegerobrigatório

      valor em centavos · -9007199254740991 a 9007199254740991

    • overdueCentsintegerobrigatório

      valor em centavos · -9007199254740991 a 9007199254740991

    • nextDueDatestringobrigatório

      pode ser vazio (null)

    • financialStatusstringobrigatório

      Valores: openpartialpaidoverdue

  • paginationobjectobrigatório
    4 campos de pagination
    • pageintegerobrigatório

      1 a 9007199254740991

    • sizeintegerobrigatório

      1 a 9007199254740991

    • totalintegerobrigatório

      0 a 9007199254740991

    • pagesintegerobrigatório

      0 a 9007199254740991

  • summaryobjectobrigatório
    5 campos de summary
    • bookingsintegerobrigatório

      0 a 9007199254740991

    • totalCentsintegerobrigatório

      valor em centavos · -9007199254740991 a 9007199254740991

    • paidCentsintegerobrigatório

      valor em centavos · -9007199254740991 a 9007199254740991

    • balanceCentsintegerobrigatório

      valor em centavos · -9007199254740991 a 9007199254740991

    • overdueCentsintegerobrigatório

      valor em centavos · -9007199254740991 a 9007199254740991

  • breakEvenobjectobrigatório
Exemplo de resposta
{
  "items": [
    {
      "id": "texto",
      "buyerName": "texto",
      "buyerPhone": "texto",
      "bookingStatus": "pending",
      "totalCents": -9007199254740991,
      "paidCents": -9007199254740991,
      "balanceCents": -9007199254740991,
      "overdueCents": -9007199254740991,
      "nextDueDate": "texto",
      "financialStatus": "open"
    }
  ],
  "pagination": {
    "page": 1,
    "size": 1,
    "total": 0,
    "pages": 0
  },
  "summary": {
    "bookings": 0,
    "totalCents": -9007199254740991,
    "paidCents": -9007199254740991,
    "balanceCents": -9007199254740991,
    "overdueCents": -9007199254740991
  },
  "breakEven": {
    "passengers": 0,
    "state": "no-costs"
  }
}

Listar despesas da saída

GET/organizations/{organizationId}/finance/departures/{id}/expenses

Permissão da chave: finance:read

Parâmetros do caminho

  • idstringobrigatório

    Identificador da saída

Parâmetros de consulta

  • pageintegeropcional

    1 a 100000 · padrão 1

  • sizeintegeropcional

    1 a 100 · padrão 20

  • searchstringopcional

    até 100 caracteres · padrão ""

Exemplo
curl "<endereço-da-api>/api/organizations/<id-da-agência>/finance/departures/<id>/expenses" \
  -H "Authorization: Bearer exc_live_<sua-chave>"

Resposta 200 (object)

3 campos
  • itemsarray<object>obrigatório
    9 campos de items
    • idstringobrigatório
    • departureIdstringobrigatório
    • categorystringobrigatório

      Valores: transportguidelodgingticketsfoodother

    • descriptionstringobrigatório
    • supplierNamestringobrigatório
    • estimatedCentsintegerobrigatório

      valor em centavos · -9007199254740991 a 9007199254740991

    • actualCentsintegerobrigatório

      valor em centavos · -9007199254740991 a 9007199254740991 · pode ser vazio (null)

    • dueDatestringobrigatório

      pode ser vazio (null)

    • paidAtstringobrigatório

      pode ser vazio (null)

  • paginationobjectobrigatório
    4 campos de pagination
    • pageintegerobrigatório

      1 a 9007199254740991

    • sizeintegerobrigatório

      1 a 9007199254740991

    • totalintegerobrigatório

      0 a 9007199254740991

    • pagesintegerobrigatório

      0 a 9007199254740991

  • summaryobjectobrigatório
    2 campos de summary
    • estimatedCentsnumberobrigatório

      valor em centavos

    • actualCentsnumberobrigatório

      valor em centavos

Exemplo de resposta
{
  "items": [
    {
      "id": "texto",
      "departureId": "<id>",
      "category": "transport",
      "description": "texto",
      "supplierName": "texto",
      "estimatedCents": -9007199254740991,
      "actualCents": -9007199254740991,
      "dueDate": "texto",
      "paidAt": "texto"
    }
  ],
  "pagination": {
    "page": 1,
    "size": 1,
    "total": 0,
    "pages": 0
  },
  "summary": {
    "estimatedCents": 0,
    "actualCents": 0
  }
}

Registrar despesa da saída

POST/organizations/{organizationId}/finance/departures/{id}/expenses

Permissão da chave: finance:manage

Parâmetros do caminho

  • idstringobrigatório

    Identificador da saída

Corpo (JSON)

  • categorystringobrigatório

    Valores: transportguidelodgingticketsfoodother

  • descriptionstringobrigatório

    2 a 250 caracteres

  • supplierNamestringopcional

    até 150 caracteres · padrão ""

  • estimatedCentsintegerobrigatório

    valor em centavos · 0 a 100000000

  • actualCentsintegeropcional

    valor em centavos · 0 a 100000000 · pode ser vazio (null)

  • dueDatestringopcional

    data AAAA-MM-DD · pode ser vazio (null)

  • paidAtstringopcional

    data AAAA-MM-DD · pode ser vazio (null)

Exemplo
curl -X POST "<endereço-da-api>/api/organizations/<id-da-agência>/finance/departures/<id>/expenses" \
  -H "Authorization: Bearer exc_live_<sua-chave>" \
  -H "Content-Type: application/json" \
  -d '{
  "category": "transport",
  "description": "texto",
  "estimatedCents": 0
}'

Resposta 201 (object)

9 campos
  • idstringobrigatório
  • departureIdstringobrigatório
  • categorystringobrigatório

    Valores: transportguidelodgingticketsfoodother

  • descriptionstringobrigatório
  • supplierNamestringobrigatório
  • estimatedCentsintegerobrigatório

    valor em centavos · -9007199254740991 a 9007199254740991

  • actualCentsintegerobrigatório

    valor em centavos · -9007199254740991 a 9007199254740991 · pode ser vazio (null)

  • dueDatestringobrigatório

    pode ser vazio (null)

  • paidAtstringobrigatório

    pode ser vazio (null)

Exemplo de resposta
{
  "id": "texto",
  "departureId": "<id>",
  "category": "transport",
  "description": "texto",
  "supplierName": "texto",
  "estimatedCents": -9007199254740991,
  "actualCents": -9007199254740991,
  "dueDate": "texto",
  "paidAt": "texto"
}

Editar despesa da saída

PATCH/organizations/{organizationId}/finance/departures/{id}/expenses/{expenseId}

Permissão da chave: finance:manage

Parâmetros do caminho

  • idstringobrigatório

    Identificador da saída

  • expenseIdstringobrigatório

    Identificador da despesa

Corpo (JSON)

  • categorystringopcional

    Valores: transportguidelodgingticketsfoodother

  • descriptionstringopcional

    2 a 250 caracteres

  • supplierNamestringopcional

    até 150 caracteres

  • estimatedCentsintegeropcional

    valor em centavos · 0 a 100000000

  • actualCentsintegeropcional

    valor em centavos · 0 a 100000000 · pode ser vazio (null)

  • dueDatestringopcional

    data AAAA-MM-DD · pode ser vazio (null)

  • paidAtstringopcional

    data AAAA-MM-DD · pode ser vazio (null)

Exemplo
curl -X PATCH "<endereço-da-api>/api/organizations/<id-da-agência>/finance/departures/<id>/expenses/<expenseId>" \
  -H "Authorization: Bearer exc_live_<sua-chave>" \
  -H "Content-Type: application/json" \
  -d '{
  "category": "transport",
  "description": "texto",
  "supplierName": "texto"
}'

Resposta 200 (object)

9 campos
  • idstringobrigatório
  • departureIdstringobrigatório
  • categorystringobrigatório

    Valores: transportguidelodgingticketsfoodother

  • descriptionstringobrigatório
  • supplierNamestringobrigatório
  • estimatedCentsintegerobrigatório

    valor em centavos · -9007199254740991 a 9007199254740991

  • actualCentsintegerobrigatório

    valor em centavos · -9007199254740991 a 9007199254740991 · pode ser vazio (null)

  • dueDatestringobrigatório

    pode ser vazio (null)

  • paidAtstringobrigatório

    pode ser vazio (null)

Exemplo de resposta
{
  "id": "texto",
  "departureId": "<id>",
  "category": "transport",
  "description": "texto",
  "supplierName": "texto",
  "estimatedCents": -9007199254740991,
  "actualCents": -9007199254740991,
  "dueDate": "texto",
  "paidAt": "texto"
}

Excluir despesa da saída

DELETE/organizations/{organizationId}/finance/departures/{id}/expenses/{expenseId}

Permissão da chave: finance:manage

Parâmetros do caminho

  • idstringobrigatório

    Identificador da saída

  • expenseIdstringobrigatório

    Identificador da despesa

Exemplo
curl -X DELETE "<endereço-da-api>/api/organizations/<id-da-agência>/finance/departures/<id>/expenses/<expenseId>" \
  -H "Authorization: Bearer exc_live_<sua-chave>"

Resposta 204 sem conteúdo

Listar valores a receber

GET/organizations/{organizationId}/finance/receivables

Permissão da chave: finance:read

Parâmetros de consulta

  • pageintegeropcional

    1 a 100000 · padrão 1

  • sizeintegeropcional

    1 a 100 · padrão 20

  • searchstringopcional

    até 100 caracteres · padrão ""

  • statusstringopcional

    Valores: openpaidoverdue

Exemplo
curl "<endereço-da-api>/api/organizations/<id-da-agência>/finance/receivables" \
  -H "Authorization: Bearer exc_live_<sua-chave>"

Resposta 200 (object)

2 campos
  • itemsarray<object>obrigatório
    7 campos de items
    • idstringobrigatório
    • bookingIdstringobrigatório
    • buyerNamestringobrigatório
    • titlestringobrigatório
    • dueDatestringobrigatório
    • amountCentsintegerobrigatório

      valor em centavos · -9007199254740991 a 9007199254740991

    • paidCentsintegerobrigatório

      valor em centavos · -9007199254740991 a 9007199254740991

  • paginationobjectobrigatório
    4 campos de pagination
    • pageintegerobrigatório

      1 a 9007199254740991

    • sizeintegerobrigatório

      1 a 9007199254740991

    • totalintegerobrigatório

      0 a 9007199254740991

    • pagesintegerobrigatório

      0 a 9007199254740991

Exemplo de resposta
{
  "items": [
    {
      "id": "texto",
      "bookingId": "<id>",
      "buyerName": "texto",
      "title": "texto",
      "dueDate": "texto",
      "amountCents": -9007199254740991,
      "paidCents": -9007199254740991
    }
  ],
  "pagination": {
    "page": 1,
    "size": 1,
    "total": 0,
    "pages": 0
  }
}

Vendas

Ver modelo de contrato

GET/organizations/{organizationId}/sales/contract

Permissão da chave: organization:manage

Exemplo
curl "<endereço-da-api>/api/organizations/<id-da-agência>/sales/contract" \
  -H "Authorization: Bearer exc_live_<sua-chave>"

Resposta 200 (object)

2 campos
  • bodystringobrigatório
  • updatedAtnumberobrigatório

    pode ser vazio (null)

Exemplo de resposta
{
  "body": "texto",
  "updatedAt": 0
}

Atualizar modelo de contrato

PUT/organizations/{organizationId}/sales/contract

Permissão da chave: organization:manage

Corpo (JSON)

  • bodystringobrigatório

    até 50000 caracteres

Exemplo
curl -X PUT "<endereço-da-api>/api/organizations/<id-da-agência>/sales/contract" \
  -H "Authorization: Bearer exc_live_<sua-chave>" \
  -H "Content-Type: application/json" \
  -d '{
  "body": "texto"
}'

Resposta 200 (object)

2 campos
  • bodystringobrigatório
  • updatedAtnumberobrigatório

    pode ser vazio (null)

Exemplo de resposta
{
  "body": "texto",
  "updatedAt": 0
}

Listar cupons

GET/organizations/{organizationId}/sales/coupons

Permissão da chave: booking:read

Parâmetros de consulta

  • pageintegeropcional

    1 a 100000 · padrão 1

  • sizeintegeropcional

    1 a 100 · padrão 20

  • searchstringopcional

    até 100 caracteres · padrão ""

Exemplo
curl "<endereço-da-api>/api/organizations/<id-da-agência>/sales/coupons" \
  -H "Authorization: Bearer exc_live_<sua-chave>"

Resposta 200 (object)

2 campos
  • itemsarray<object>obrigatório
    11 campos de items
    • idstringobrigatório
    • organizationIdstringobrigatório
    • codestringobrigatório
    • kindstringobrigatório

      Valores: percentfixed

    • valueintegerobrigatório

      -9007199254740991 a 9007199254740991

    • maxUsesintegerobrigatório

      -9007199254740991 a 9007199254740991 · pode ser vazio (null)

    • usedCountintegerobrigatório

      -9007199254740991 a 9007199254740991

    • validUntilstringobrigatório

      pode ser vazio (null)

    • excursionIdstringobrigatório

      pode ser vazio (null)

    • activebooleanobrigatório
    • createdAtintegerobrigatório

      -9007199254740991 a 9007199254740991

  • paginationobjectobrigatório
    4 campos de pagination
    • pageintegerobrigatório

      1 a 9007199254740991

    • sizeintegerobrigatório

      1 a 9007199254740991

    • totalintegerobrigatório

      0 a 9007199254740991

    • pagesintegerobrigatório

      0 a 9007199254740991

Exemplo de resposta
{
  "items": [
    {
      "id": "texto",
      "organizationId": "<id>",
      "code": "texto",
      "kind": "percent",
      "value": -9007199254740991,
      "maxUses": -9007199254740991,
      "usedCount": -9007199254740991,
      "validUntil": "texto",
      "excursionId": "<id>",
      "active": true,
      "createdAt": -9007199254740991
    }
  ],
  "pagination": {
    "page": 1,
    "size": 1,
    "total": 0,
    "pages": 0
  }
}

Criar cupom

POST/organizations/{organizationId}/sales/coupons

Permissão da chave: excursion:update

Corpo (JSON)

  • codestringobrigatório
  • kindstringobrigatório

    Valores: percentfixed

  • valueintegerobrigatório

    acima de 0 a 100000000

  • maxUsesintegeropcional

    acima de 0 a 100000 · pode ser vazio (null)

  • validUntilstringopcional

    data AAAA-MM-DD · pode ser vazio (null)

  • excursionIdstringopcional

    até 200 caracteres · pode ser vazio (null)

  • activebooleanopcional

    padrão true

Exemplo
curl -X POST "<endereço-da-api>/api/organizations/<id-da-agência>/sales/coupons" \
  -H "Authorization: Bearer exc_live_<sua-chave>" \
  -H "Content-Type: application/json" \
  -d '{
  "code": "texto",
  "kind": "percent",
  "value": 1
}'

Resposta 201 (object)

11 campos
  • idstringobrigatório
  • organizationIdstringobrigatório
  • codestringobrigatório
  • kindstringobrigatório

    Valores: percentfixed

  • valueintegerobrigatório

    -9007199254740991 a 9007199254740991

  • maxUsesintegerobrigatório

    -9007199254740991 a 9007199254740991 · pode ser vazio (null)

  • usedCountintegerobrigatório

    -9007199254740991 a 9007199254740991

  • validUntilstringobrigatório

    pode ser vazio (null)

  • excursionIdstringobrigatório

    pode ser vazio (null)

  • activebooleanobrigatório
  • createdAtintegerobrigatório

    -9007199254740991 a 9007199254740991

Exemplo de resposta
{
  "id": "texto",
  "organizationId": "<id>",
  "code": "texto",
  "kind": "percent",
  "value": -9007199254740991,
  "maxUses": -9007199254740991,
  "usedCount": -9007199254740991,
  "validUntil": "texto",
  "excursionId": "<id>",
  "active": true,
  "createdAt": -9007199254740991
}

Atualizar cupom

PUT/organizations/{organizationId}/sales/coupons/{id}

Permissão da chave: excursion:update

Parâmetros do caminho

  • idstringobrigatório

    Identificador do cupom

Corpo (JSON)

  • codestringobrigatório
  • kindstringobrigatório

    Valores: percentfixed

  • valueintegerobrigatório

    acima de 0 a 100000000

  • maxUsesintegeropcional

    acima de 0 a 100000 · pode ser vazio (null)

  • validUntilstringopcional

    data AAAA-MM-DD · pode ser vazio (null)

  • excursionIdstringopcional

    até 200 caracteres · pode ser vazio (null)

  • activebooleanopcional

    padrão true

Exemplo
curl -X PUT "<endereço-da-api>/api/organizations/<id-da-agência>/sales/coupons/<id>" \
  -H "Authorization: Bearer exc_live_<sua-chave>" \
  -H "Content-Type: application/json" \
  -d '{
  "code": "texto",
  "kind": "percent",
  "value": 1
}'

Resposta 200 (object)

11 campos
  • idstringobrigatório
  • organizationIdstringobrigatório
  • codestringobrigatório
  • kindstringobrigatório

    Valores: percentfixed

  • valueintegerobrigatório

    -9007199254740991 a 9007199254740991

  • maxUsesintegerobrigatório

    -9007199254740991 a 9007199254740991 · pode ser vazio (null)

  • usedCountintegerobrigatório

    -9007199254740991 a 9007199254740991

  • validUntilstringobrigatório

    pode ser vazio (null)

  • excursionIdstringobrigatório

    pode ser vazio (null)

  • activebooleanobrigatório
  • createdAtintegerobrigatório

    -9007199254740991 a 9007199254740991

Exemplo de resposta
{
  "id": "texto",
  "organizationId": "<id>",
  "code": "texto",
  "kind": "percent",
  "value": -9007199254740991,
  "maxUses": -9007199254740991,
  "usedCount": -9007199254740991,
  "validUntil": "texto",
  "excursionId": "<id>",
  "active": true,
  "createdAt": -9007199254740991
}

Ver divisão de quartos da saída

GET/organizations/{organizationId}/sales/departures/{id}/rooming

Permissão da chave: passenger:read

Parâmetros do caminho

  • idstringobrigatório

    Identificador da saída

Exemplo
curl "<endereço-da-api>/api/organizations/<id-da-agência>/sales/departures/<id>/rooming" \
  -H "Authorization: Bearer exc_live_<sua-chave>"

Resposta 200 (object)

3 campos
  • departureobjectobrigatório
    3 campos de departure
    • idstringobrigatório
    • titlestringobrigatório
    • startsAtstringobrigatório
  • passengersarray<object>obrigatório
    6 campos de passengers
    • idstringobrigatório
    • namestringobrigatório
    • bookingIdstringobrigatório
    • buyerNamestringobrigatório
    • fareNamestringobrigatório

      pode ser vazio (null)

    • roomIdstringobrigatório

      pode ser vazio (null)

  • roomsarray<object>obrigatório
    4 campos de rooms
    • idstringobrigatório
    • labelstringobrigatório
    • notesstringobrigatório
    • passengerIdsarray<string>obrigatório
Exemplo de resposta
{
  "departure": {
    "id": "texto",
    "title": "texto",
    "startsAt": "texto"
  },
  "passengers": [
    {
      "id": "texto",
      "name": "texto",
      "bookingId": "<id>",
      "buyerName": "texto",
      "fareName": "texto",
      "roomId": "<id>"
    }
  ],
  "rooms": [
    {
      "id": "texto",
      "label": "texto",
      "notes": "texto",
      "passengerIds": [
        "<id>"
      ]
    }
  ]
}

Atualizar divisão de quartos da saída

PUT/organizations/{organizationId}/sales/departures/{id}/rooming

Permissão da chave: passenger:update

Parâmetros do caminho

  • idstringobrigatório

    Identificador da saída

Corpo (JSON)

  • roomsarray<object>obrigatório

    0 a 300 itens

    3 campos de rooms
    • labelstringobrigatório

      até 60 caracteres

    • notesstringopcional

      até 300 caracteres · padrão ""

    • passengerIdsarray<string>obrigatório

      0 a 20 itens

Exemplo
curl -X PUT "<endereço-da-api>/api/organizations/<id-da-agência>/sales/departures/<id>/rooming" \
  -H "Authorization: Bearer exc_live_<sua-chave>" \
  -H "Content-Type: application/json" \
  -d '{
  "rooms": [
    {
      "label": "texto",
      "passengerIds": [
        "<id>"
      ]
    }
  ]
}'

Resposta 200 (object)

3 campos
  • departureobjectobrigatório
    3 campos de departure
    • idstringobrigatório
    • titlestringobrigatório
    • startsAtstringobrigatório
  • passengersarray<object>obrigatório
    6 campos de passengers
    • idstringobrigatório
    • namestringobrigatório
    • bookingIdstringobrigatório
    • buyerNamestringobrigatório
    • fareNamestringobrigatório

      pode ser vazio (null)

    • roomIdstringobrigatório

      pode ser vazio (null)

  • roomsarray<object>obrigatório
    4 campos de rooms
    • idstringobrigatório
    • labelstringobrigatório
    • notesstringobrigatório
    • passengerIdsarray<string>obrigatório
Exemplo de resposta
{
  "departure": {
    "id": "texto",
    "title": "texto",
    "startsAt": "texto"
  },
  "passengers": [
    {
      "id": "texto",
      "name": "texto",
      "bookingId": "<id>",
      "buyerName": "texto",
      "fareName": "texto",
      "roomId": "<id>"
    }
  ],
  "rooms": [
    {
      "id": "texto",
      "label": "texto",
      "notes": "texto",
      "passengerIds": [
        "<id>"
      ]
    }
  ]
}

Ver lista de espera da saída

GET/organizations/{organizationId}/sales/departures/{id}/waitlist

Permissão da chave: booking:read

Parâmetros do caminho

  • idstringobrigatório

    Identificador da saída

Parâmetros de consulta

  • pageintegeropcional

    1 a 100000 · padrão 1

  • sizeintegeropcional

    1 a 100 · padrão 20

  • searchstringopcional

    até 100 caracteres · padrão ""

Exemplo
curl "<endereço-da-api>/api/organizations/<id-da-agência>/sales/departures/<id>/waitlist" \
  -H "Authorization: Bearer exc_live_<sua-chave>"

Resposta 200 (object)

3 campos
  • itemsarray<object>obrigatório
    8 campos de items
    • idstringobrigatório
    • namestringobrigatório
    • emailstringobrigatório
    • phonestringobrigatório
    • partySizeintegerobrigatório

      -9007199254740991 a 9007199254740991

    • createdAtintegerobrigatório

      -9007199254740991 a 9007199254740991

    • notifiedAtintegerobrigatório

      -9007199254740991 a 9007199254740991 · pode ser vazio (null)

    • positionintegerobrigatório

      1 a 9007199254740991

  • paginationobjectobrigatório
    4 campos de pagination
    • pageintegerobrigatório

      1 a 9007199254740991

    • sizeintegerobrigatório

      1 a 9007199254740991

    • totalintegerobrigatório

      0 a 9007199254740991

    • pagesintegerobrigatório

      0 a 9007199254740991

  • peopleintegerobrigatório

    0 a 9007199254740991

Exemplo de resposta
{
  "items": [
    {
      "id": "texto",
      "name": "texto",
      "email": "texto",
      "phone": "texto",
      "partySize": -9007199254740991,
      "createdAt": -9007199254740991,
      "notifiedAt": -9007199254740991,
      "position": 1
    }
  ],
  "pagination": {
    "page": 1,
    "size": 1,
    "total": 0,
    "pages": 0
  },
  "people": 0
}

Excluir inscrição na lista de espera da saída

DELETE/organizations/{organizationId}/sales/departures/{id}/waitlist/{entryId}

Permissão da chave: booking:update

Parâmetros do caminho

  • idstringobrigatório

    Identificador da saída

  • entryIdstringobrigatório

    Identificador da inscrição na lista de espera

Exemplo
curl -X DELETE "<endereço-da-api>/api/organizations/<id-da-agência>/sales/departures/<id>/waitlist/<entryId>" \
  -H "Authorization: Bearer exc_live_<sua-chave>"

Resposta 204 sem conteúdo

Vendedores

Listar vendedores

GET/organizations/{organizationId}/sales-agents

Permissão da chave: finance:read

Parâmetros de consulta

  • pageintegeropcional

    1 a 100000 · padrão 1

  • sizeintegeropcional

    1 a 100 · padrão 20

  • searchstringopcional

    até 100 caracteres · padrão ""

Exemplo
curl "<endereço-da-api>/api/organizations/<id-da-agência>/sales-agents" \
  -H "Authorization: Bearer exc_live_<sua-chave>"

Resposta 200 (object)

2 campos
  • itemsarray<object>obrigatório
    14 campos de items
    • idstringobrigatório
    • codestringobrigatório
    • namestringobrigatório
    • pixKeystringobrigatório
    • emailstringobrigatório

      pode ser vazio (null)

    • phonestringobrigatório

      pode ser vazio (null)

    • activebooleanobrigatório
    • commissionobjectobrigatório
      2 campos de commission
      • kindstringobrigatório

        Valores: percentper_passenger

      • valueintegerobrigatório

        -9007199254740991 a 9007199254740991

    • ratesarray<object>obrigatório
      3 campos de rates
      • excursionIdstringobrigatório
      • titlestringobrigatório
      • commissionobjectobrigatório
        2 campos de commission
        • kindstringobrigatório

          Valores: percentper_passenger

        • valueintegerobrigatório

          -9007199254740991 a 9007199254740991

    • createdAtintegerobrigatório

      -9007199254740991 a 9007199254740991

    • salesintegerobrigatório

      -9007199254740991 a 9007199254740991

    • accruedCentsintegerobrigatório

      valor em centavos · -9007199254740991 a 9007199254740991

    • paidCentsintegerobrigatório

      valor em centavos · -9007199254740991 a 9007199254740991

    • balanceCentsintegerobrigatório

      valor em centavos · -9007199254740991 a 9007199254740991

  • paginationobjectobrigatório
    4 campos de pagination
    • pageintegerobrigatório

      1 a 9007199254740991

    • sizeintegerobrigatório

      1 a 9007199254740991

    • totalintegerobrigatório

      0 a 9007199254740991

    • pagesintegerobrigatório

      0 a 9007199254740991

Exemplo de resposta
{
  "items": [
    {
      "id": "texto",
      "code": "texto",
      "name": "texto",
      "pixKey": "texto",
      "email": "texto",
      "phone": "texto",
      "active": true,
      "commission": {
        "kind": "percent",
        "value": -9007199254740991
      },
      "rates": [
        {
          "excursionId": "<id>",
          "title": "texto",
          "commission": {
            "kind": "percent",
            "value": -9007199254740991
          }
        }
      ],
      "createdAt": -9007199254740991,
      "sales": -9007199254740991,
      "accruedCents": -9007199254740991,
      "paidCents": -9007199254740991,
      "balanceCents": -9007199254740991
    }
  ],
  "pagination": {
    "page": 1,
    "size": 1,
    "total": 0,
    "pages": 0
  }
}

Criar vendedor

POST/organizations/{organizationId}/sales-agents

Permissão da chave: finance:manage

Corpo (JSON)

  • namestringobrigatório

    2 a 120 caracteres

  • pixKeystringobrigatório

    3 a 140 caracteres

  • emailstringopcional

    até 254 caracteres · pode ser vazio (null)

  • phonestringopcional

    pode ser vazio (null)

  • codestringopcional
  • activebooleanopcional

    padrão true

  • commissionobjectobrigatório
    2 campos de commission
    • kindstringobrigatório

      Valores: percentper_passenger

    • valueintegerobrigatório

      0 a 10000000

Exemplo
curl -X POST "<endereço-da-api>/api/organizations/<id-da-agência>/sales-agents" \
  -H "Authorization: Bearer exc_live_<sua-chave>" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "texto",
  "pixKey": "texto",
  "commission": {
    "kind": "percent",
    "value": 0
  }
}'

Resposta 201 (object)

10 campos
  • idstringobrigatório
  • codestringobrigatório
  • namestringobrigatório
  • pixKeystringobrigatório
  • emailstringobrigatório

    pode ser vazio (null)

  • phonestringobrigatório

    pode ser vazio (null)

  • activebooleanobrigatório
  • commissionobjectobrigatório
    2 campos de commission
    • kindstringobrigatório

      Valores: percentper_passenger

    • valueintegerobrigatório

      -9007199254740991 a 9007199254740991

  • ratesarray<object>obrigatório
    3 campos de rates
    • excursionIdstringobrigatório
    • titlestringobrigatório
    • commissionobjectobrigatório
      2 campos de commission
      • kindstringobrigatório

        Valores: percentper_passenger

      • valueintegerobrigatório

        -9007199254740991 a 9007199254740991

  • createdAtintegerobrigatório

    -9007199254740991 a 9007199254740991

Exemplo de resposta
{
  "id": "texto",
  "code": "texto",
  "name": "texto",
  "pixKey": "texto",
  "email": "texto",
  "phone": "texto",
  "active": true,
  "commission": {
    "kind": "percent",
    "value": -9007199254740991
  },
  "rates": [
    {
      "excursionId": "<id>",
      "title": "texto",
      "commission": {
        "kind": "percent",
        "value": -9007199254740991
      }
    }
  ],
  "createdAt": -9007199254740991
}

Ver vendedor

GET/organizations/{organizationId}/sales-agents/{id}

Permissão da chave: finance:read

Parâmetros do caminho

  • idstringobrigatório

    Identificador do vendedor

Exemplo
curl "<endereço-da-api>/api/organizations/<id-da-agência>/sales-agents/<id>" \
  -H "Authorization: Bearer exc_live_<sua-chave>"

Resposta 200 (object)

3 campos
  • agentobjectobrigatório
    14 campos de agent
    • idstringobrigatório
    • codestringobrigatório
    • namestringobrigatório
    • pixKeystringobrigatório
    • emailstringobrigatório

      pode ser vazio (null)

    • phonestringobrigatório

      pode ser vazio (null)

    • activebooleanobrigatório
    • commissionobjectobrigatório
      2 campos de commission
      • kindstringobrigatório

        Valores: percentper_passenger

      • valueintegerobrigatório

        -9007199254740991 a 9007199254740991

    • ratesarray<object>obrigatório
      3 campos de rates
      • excursionIdstringobrigatório
      • titlestringobrigatório
      • commissionobjectobrigatório
        2 campos de commission
        • kindstringobrigatório

          Valores: percentper_passenger

        • valueintegerobrigatório

          -9007199254740991 a 9007199254740991

    • createdAtintegerobrigatório

      -9007199254740991 a 9007199254740991

    • salesintegerobrigatório

      -9007199254740991 a 9007199254740991

    • accruedCentsintegerobrigatório

      valor em centavos · -9007199254740991 a 9007199254740991

    • paidCentsintegerobrigatório

      valor em centavos · -9007199254740991 a 9007199254740991

    • balanceCentsintegerobrigatório

      valor em centavos · -9007199254740991 a 9007199254740991

  • openarray<object>obrigatório
    11 campos de open
    • idstringobrigatório
    • kindstringobrigatório

      Valores: accrualreversalsettlement

    • balanceEffectCentsintegerobrigatório

      valor em centavos · -9007199254740991 a 9007199254740991

    • amountCentsintegerobrigatório

      valor em centavos · -9007199254740991 a 9007199254740991

    • baseCentsintegerobrigatório

      valor em centavos · -9007199254740991 a 9007199254740991

    • bookingIdstringobrigatório
    • buyerNamestringobrigatório
    • titlestringobrigatório
    • rulestringobrigatório

      pode ser vazio (null)

    • createdAtintegerobrigatório

      -9007199254740991 a 9007199254740991

    • settledByobjectobrigatório

      pode ser vazio (null)

      2 campos de settledBy
      • payoutIdstringobrigatório
      • methodstringobrigatório

        Valores: manual_pixprovider_split

  • payoutsarray<object>obrigatório
    9 campos de payouts
    • idstringobrigatório
    • agentIdstringobrigatório
    • methodstringobrigatório

      Valores: manual_pixprovider_split

    • amountCentsintegerobrigatório

      valor em centavos · -9007199254740991 a 9007199254740991

    • referencestringobrigatório

      pode ser vazio (null)

    • providerIdstringobrigatório

      pode ser vazio (null)

    • providerReferencestringobrigatório

      pode ser vazio (null)

    • paidAtintegerobrigatório

      -9007199254740991 a 9007199254740991

    • entriesintegerobrigatório

      -9007199254740991 a 9007199254740991

Exemplo de resposta
{
  "agent": {
    "id": "texto",
    "code": "texto",
    "name": "texto",
    "pixKey": "texto",
    "email": "texto",
    "phone": "texto",
    "active": true,
    "commission": {
      "kind": "percent",
      "value": -9007199254740991
    },
    "rates": [
      {
        "excursionId": "<id>",
        "title": "texto",
        "commission": {
          "kind": "percent",
          "value": -9007199254740991
        }
      }
    ],
    "createdAt": -9007199254740991,
    "sales": -9007199254740991,
    "accruedCents": -9007199254740991,
    "paidCents": -9007199254740991,
    "balanceCents": -9007199254740991
  },
  "open": [
    {
      "id": "texto",
      "kind": "accrual",
      "balanceEffectCents": -9007199254740991,
      "amountCents": -9007199254740991,
      "baseCents": -9007199254740991,
      "bookingId": "<id>",
      "buyerName": "texto",
      "title": "texto",
      "rule": "texto",
      "createdAt": -9007199254740991,
      "settledBy": {
        "payoutId": "<id>",
        "method": "manual_pix"
      }
    }
  ],
  "payouts": [
    {
      "id": "texto",
      "agentId": "<id>",
      "method": "manual_pix",
      "amountCents": -9007199254740991,
      "reference": "texto",
      "providerId": "<id>",
      "providerReference": "texto",
      "paidAt": -9007199254740991,
      "entries": -9007199254740991
    }
  ]
}

Editar vendedor

PATCH/organizations/{organizationId}/sales-agents/{id}

Permissão da chave: finance:manage

Parâmetros do caminho

  • idstringobrigatório

    Identificador do vendedor

Corpo (JSON)

  • namestringopcional

    2 a 120 caracteres

  • pixKeystringopcional

    3 a 140 caracteres

  • emailstringopcional

    até 254 caracteres · pode ser vazio (null)

  • phonestringopcional

    pode ser vazio (null)

  • codestringopcional
  • activebooleanopcional
  • commissionobjectopcional
    2 campos de commission
    • kindstringobrigatório

      Valores: percentper_passenger

    • valueintegerobrigatório

      0 a 10000000

Exemplo
curl -X PATCH "<endereço-da-api>/api/organizations/<id-da-agência>/sales-agents/<id>" \
  -H "Authorization: Bearer exc_live_<sua-chave>" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "texto",
  "pixKey": "texto",
  "email": "texto"
}'

Resposta 200 (object)

10 campos
  • idstringobrigatório
  • codestringobrigatório
  • namestringobrigatório
  • pixKeystringobrigatório
  • emailstringobrigatório

    pode ser vazio (null)

  • phonestringobrigatório

    pode ser vazio (null)

  • activebooleanobrigatório
  • commissionobjectobrigatório
    2 campos de commission
    • kindstringobrigatório

      Valores: percentper_passenger

    • valueintegerobrigatório

      -9007199254740991 a 9007199254740991

  • ratesarray<object>obrigatório
    3 campos de rates
    • excursionIdstringobrigatório
    • titlestringobrigatório
    • commissionobjectobrigatório
      2 campos de commission
      • kindstringobrigatório

        Valores: percentper_passenger

      • valueintegerobrigatório

        -9007199254740991 a 9007199254740991

  • createdAtintegerobrigatório

    -9007199254740991 a 9007199254740991

Exemplo de resposta
{
  "id": "texto",
  "code": "texto",
  "name": "texto",
  "pixKey": "texto",
  "email": "texto",
  "phone": "texto",
  "active": true,
  "commission": {
    "kind": "percent",
    "value": -9007199254740991
  },
  "rates": [
    {
      "excursionId": "<id>",
      "title": "texto",
      "commission": {
        "kind": "percent",
        "value": -9007199254740991
      }
    }
  ],
  "createdAt": -9007199254740991
}

Ver extrato do vendedor

GET/organizations/{organizationId}/sales-agents/{id}/ledger

Permissão da chave: finance:read

Parâmetros do caminho

  • idstringobrigatório

    Identificador do vendedor

Parâmetros de consulta

  • pageintegeropcional

    1 a 100000 · padrão 1

  • sizeintegeropcional

    1 a 100 · padrão 20

  • searchstringopcional

    até 100 caracteres · padrão ""

Exemplo
curl "<endereço-da-api>/api/organizations/<id-da-agência>/sales-agents/<id>/ledger" \
  -H "Authorization: Bearer exc_live_<sua-chave>"

Resposta 200 (object)

2 campos
  • itemsarray<object>obrigatório
    11 campos de items
    • idstringobrigatório
    • kindstringobrigatório

      Valores: accrualreversalsettlement

    • balanceEffectCentsintegerobrigatório

      valor em centavos · -9007199254740991 a 9007199254740991

    • amountCentsintegerobrigatório

      valor em centavos · -9007199254740991 a 9007199254740991

    • baseCentsintegerobrigatório

      valor em centavos · -9007199254740991 a 9007199254740991

    • bookingIdstringobrigatório
    • buyerNamestringobrigatório
    • titlestringobrigatório
    • rulestringobrigatório

      pode ser vazio (null)

    • createdAtintegerobrigatório

      -9007199254740991 a 9007199254740991

    • settledByobjectobrigatório

      pode ser vazio (null)

      2 campos de settledBy
      • payoutIdstringobrigatório
      • methodstringobrigatório

        Valores: manual_pixprovider_split

  • paginationobjectobrigatório
    4 campos de pagination
    • pageintegerobrigatório

      1 a 9007199254740991

    • sizeintegerobrigatório

      1 a 9007199254740991

    • totalintegerobrigatório

      0 a 9007199254740991

    • pagesintegerobrigatório

      0 a 9007199254740991

Exemplo de resposta
{
  "items": [
    {
      "id": "texto",
      "kind": "accrual",
      "balanceEffectCents": -9007199254740991,
      "amountCents": -9007199254740991,
      "baseCents": -9007199254740991,
      "bookingId": "<id>",
      "buyerName": "texto",
      "title": "texto",
      "rule": "texto",
      "createdAt": -9007199254740991,
      "settledBy": {
        "payoutId": "<id>",
        "method": "manual_pix"
      }
    }
  ],
  "pagination": {
    "page": 1,
    "size": 1,
    "total": 0,
    "pages": 0
  }
}

Registrar repasse do vendedor

POST/organizations/{organizationId}/sales-agents/{id}/payouts

Permissão da chave: finance:manage

Parâmetros do caminho

  • idstringobrigatório

    Identificador do vendedor

Corpo (JSON)

  • entryIdsarray<string>obrigatório

    1 a 500 itens

  • referencestringopcional

    até 200 caracteres · pode ser vazio (null)

  • idempotencyKeystringobrigatório

    UUID

Exemplo
curl -X POST "<endereço-da-api>/api/organizations/<id-da-agência>/sales-agents/<id>/payouts" \
  -H "Authorization: Bearer exc_live_<sua-chave>" \
  -H "Content-Type: application/json" \
  -d '{
  "entryIds": [
    "<id>"
  ],
  "idempotencyKey": "<uuid>"
}'

Resposta 201 (object)

9 campos
  • idstringobrigatório
  • agentIdstringobrigatório
  • methodstringobrigatório

    Valores: manual_pixprovider_split

  • amountCentsintegerobrigatório

    valor em centavos · -9007199254740991 a 9007199254740991

  • referencestringobrigatório

    pode ser vazio (null)

  • providerIdstringobrigatório

    pode ser vazio (null)

  • providerReferencestringobrigatório

    pode ser vazio (null)

  • paidAtintegerobrigatório

    -9007199254740991 a 9007199254740991

  • entriesintegerobrigatório

    -9007199254740991 a 9007199254740991

Exemplo de resposta
{
  "id": "texto",
  "agentId": "<id>",
  "method": "manual_pix",
  "amountCents": -9007199254740991,
  "reference": "texto",
  "providerId": "<id>",
  "providerReference": "texto",
  "paidAt": -9007199254740991,
  "entries": -9007199254740991
}

Atualizar comissões do vendedor

PUT/organizations/{organizationId}/sales-agents/{id}/rates

Permissão da chave: finance:manage

Parâmetros do caminho

  • idstringobrigatório

    Identificador do vendedor

Corpo (JSON)

  • excursionIdstringobrigatório

    até 100 caracteres

  • commissionobjectobrigatório

    pode ser vazio (null)

    2 campos de commission
    • kindstringobrigatório

      Valores: percentper_passenger

    • valueintegerobrigatório

      0 a 10000000

Exemplo
curl -X PUT "<endereço-da-api>/api/organizations/<id-da-agência>/sales-agents/<id>/rates" \
  -H "Authorization: Bearer exc_live_<sua-chave>" \
  -H "Content-Type: application/json" \
  -d '{
  "excursionId": "<id>",
  "commission": {
    "kind": "percent",
    "value": 0
  }
}'

Resposta 200 (object)

10 campos
  • idstringobrigatório
  • codestringobrigatório
  • namestringobrigatório
  • pixKeystringobrigatório
  • emailstringobrigatório

    pode ser vazio (null)

  • phonestringobrigatório

    pode ser vazio (null)

  • activebooleanobrigatório
  • commissionobjectobrigatório
    2 campos de commission
    • kindstringobrigatório

      Valores: percentper_passenger

    • valueintegerobrigatório

      -9007199254740991 a 9007199254740991

  • ratesarray<object>obrigatório
    3 campos de rates
    • excursionIdstringobrigatório
    • titlestringobrigatório
    • commissionobjectobrigatório
      2 campos de commission
      • kindstringobrigatório

        Valores: percentper_passenger

      • valueintegerobrigatório

        -9007199254740991 a 9007199254740991

  • createdAtintegerobrigatório

    -9007199254740991 a 9007199254740991

Exemplo de resposta
{
  "id": "texto",
  "code": "texto",
  "name": "texto",
  "pixKey": "texto",
  "email": "texto",
  "phone": "texto",
  "active": true,
  "commission": {
    "kind": "percent",
    "value": -9007199254740991
  },
  "rates": [
    {
      "excursionId": "<id>",
      "title": "texto",
      "commission": {
        "kind": "percent",
        "value": -9007199254740991
      }
    }
  ],
  "createdAt": -9007199254740991
}

Ver vendedor da reserva

GET/organizations/{organizationId}/sales-agents/bookings/{id}

Permissão da chave: booking:read

Parâmetros do caminho

  • idstringobrigatório

    Identificador da reserva

Exemplo
curl "<endereço-da-api>/api/organizations/<id-da-agência>/sales-agents/bookings/<id>" \
  -H "Authorization: Bearer exc_live_<sua-chave>"

Resposta 200 (object)

3 campos
  • agentobjectobrigatório

    pode ser vazio (null)

    3 campos de agent
    • idstringobrigatório
    • codestringobrigatório
    • namestringobrigatório
  • channelstringobrigatório

    pode ser vazio (null)

    Valores: sitepanel

  • lockedbooleanobrigatório
Exemplo de resposta
{
  "agent": {
    "id": "texto",
    "code": "texto",
    "name": "texto"
  },
  "channel": "site",
  "locked": true
}

Atualizar vendedor da reserva

PUT/organizations/{organizationId}/sales-agents/bookings/{id}

Permissão da chave: booking:update

Parâmetros do caminho

  • idstringobrigatório

    Identificador da reserva

Corpo (JSON)

  • agentIdstringobrigatório

    até 100 caracteres

Exemplo
curl -X PUT "<endereço-da-api>/api/organizations/<id-da-agência>/sales-agents/bookings/<id>" \
  -H "Authorization: Bearer exc_live_<sua-chave>" \
  -H "Content-Type: application/json" \
  -d '{
  "agentId": "<id>"
}'

Resposta 200 (object)

3 campos
  • agentobjectobrigatório

    pode ser vazio (null)

    3 campos de agent
    • idstringobrigatório
    • codestringobrigatório
    • namestringobrigatório
  • channelstringobrigatório

    pode ser vazio (null)

    Valores: sitepanel

  • lockedbooleanobrigatório
Exemplo de resposta
{
  "agent": {
    "id": "texto",
    "code": "texto",
    "name": "texto"
  },
  "channel": "site",
  "locked": true
}

Ver opções de vendedores

GET/organizations/{organizationId}/sales-agents/options

Permissão da chave: booking:create

Parâmetros de consulta

  • pageintegeropcional

    1 a 100000 · padrão 1

  • sizeintegeropcional

    1 a 100 · padrão 20

  • searchstringopcional

    até 100 caracteres · padrão ""

Exemplo
curl "<endereço-da-api>/api/organizations/<id-da-agência>/sales-agents/options" \
  -H "Authorization: Bearer exc_live_<sua-chave>"

Resposta 200 (object)

2 campos
  • itemsarray<object>obrigatório
    3 campos de items
    • idstringobrigatório
    • codestringobrigatório
    • namestringobrigatório
  • paginationobjectobrigatório
    4 campos de pagination
    • pageintegerobrigatório

      1 a 9007199254740991

    • sizeintegerobrigatório

      1 a 9007199254740991

    • totalintegerobrigatório

      0 a 9007199254740991

    • pagesintegerobrigatório

      0 a 9007199254740991

Exemplo de resposta
{
  "items": [
    {
      "id": "texto",
      "code": "texto",
      "name": "texto"
    }
  ],
  "pagination": {
    "page": 1,
    "size": 1,
    "total": 0,
    "pages": 0
  }
}

Regras de cancelamento

Ver regras de cancelamento da reserva

GET/organizations/{organizationId}/cancellation-rules/bookings/{id}

Permissão da chave: payment:read

Parâmetros do caminho

  • idstringobrigatório

    Identificador da reserva

Exemplo
curl "<endereço-da-api>/api/organizations/<id-da-agência>/cancellation-rules/bookings/<id>" \
  -H "Authorization: Bearer exc_live_<sua-chave>"

Resposta 200 (object)

7 campos
  • termsobjectobrigatório

    pode ser vazio (null)

    3 campos de terms
    • bandsarray<object>obrigatório
      2 campos de bands
      • minDaysintegerobrigatório

        0 a 365

      • refundPercentintegerobrigatório

        0 a 100

    • channelstringobrigatório

      Valores: sitepanel

    • capturedAtintegerobrigatório

      -9007199254740991 a 9007199254740991

  • statusstringobrigatório

    Valores: pendingconfirmedcancelledexpired

  • totalCentsintegerobrigatório

    valor em centavos · -9007199254740991 a 9007199254740991

  • paidCentsintegerobrigatório

    valor em centavos · -9007199254740991 a 9007199254740991

  • purchasedAtintegerobrigatório

    -9007199254740991 a 9007199254740991

  • startsAtstringobrigatório
  • suggestionobjectobrigatório
    7 campos de suggestion
    • basisstringobrigatório

      Valores: withdrawalbandnone

    • daysBeforeDepartureintegerobrigatório

      -9007199254740991 a 9007199254740991

    • bandobjectobrigatório

      pode ser vazio (null)

      2 campos de band
      • minDaysintegerobrigatório

        0 a 365

      • refundPercentintegerobrigatório

        0 a 100

    • refundCentsintegerobrigatório

      valor em centavos · -9007199254740991 a 9007199254740991

    • retainedCentsintegerobrigatório

      valor em centavos · -9007199254740991 a 9007199254740991

    • aboveSafeLimitbooleanobrigatório
    • reasonsarray<string>obrigatório
Exemplo de resposta
{
  "terms": {
    "bands": [
      {
        "minDays": 0,
        "refundPercent": 0
      }
    ],
    "channel": "site",
    "capturedAt": -9007199254740991
  },
  "status": "pending",
  "totalCents": -9007199254740991,
  "paidCents": -9007199254740991,
  "purchasedAt": -9007199254740991,
  "startsAt": "texto",
  "suggestion": {
    "basis": "withdrawal",
    "daysBeforeDeparture": -9007199254740991,
    "band": {
      "minDays": 0,
      "refundPercent": 0
    },
    "refundCents": -9007199254740991,
    "retainedCents": -9007199254740991,
    "aboveSafeLimit": true,
    "reasons": [
      "texto"
    ]
  }
}

Cancelar saída abaixo do mínimo

POST/organizations/{organizationId}/cancellation-rules/departures/{id}/cancel-below-minimum

Permissão da chave: departure:publish

Parâmetros do caminho

  • idstringobrigatório

    Identificador da saída

Exemplo
curl -X POST "<endereço-da-api>/api/organizations/<id-da-agência>/cancellation-rules/departures/<id>/cancel-below-minimum" \
  -H "Authorization: Bearer exc_live_<sua-chave>"

Resposta 200 (object)

2 campos
  • departureobjectobrigatório
    8 campos de departure
    • idstringobrigatório
    • excursionIdstringobrigatório
    • startsAtstringobrigatório
    • meetingInstructionsstringobrigatório
    • vehicleIdstringobrigatório

      pode ser vazio (null)

    • seatLayoutSnapshotobjectobrigatório

      pode ser vazio (null)

      1 campo de seatLayoutSnapshot
      • seatsarray<object>obrigatório

        1 a 100 itens

        4 campos de seats
        • labelstringobrigatório

          até 20 caracteres

        • rowintegerobrigatório

          1 a 100

        • columnintegerobrigatório

          1 a 10

        • blockedbooleanobrigatório
    • seatSelectionEnabledbooleanobrigatório
    • statusstringobrigatório

      Valores: draftpublishedclosedcancelled

  • affectedBookingsintegerobrigatório

    0 a 9007199254740991

Exemplo de resposta
{
  "departure": {
    "id": "texto",
    "excursionId": "<id>",
    "startsAt": "texto",
    "meetingInstructions": "texto",
    "vehicleId": "<id>",
    "seatLayoutSnapshot": {
      "seats": [
        {
          "label": "texto",
          "row": 1,
          "column": 1,
          "blocked": true
        }
      ]
    },
    "seatSelectionEnabled": true,
    "status": "draft"
  },
  "affectedBookings": 0
}

Ver mínimo de passageiros da saída

GET/organizations/{organizationId}/cancellation-rules/departures/{id}/minimum

Permissão da chave: departure:read

Parâmetros do caminho

  • idstringobrigatório

    Identificador da saída

Exemplo
curl "<endereço-da-api>/api/organizations/<id-da-agência>/cancellation-rules/departures/<id>/minimum" \
  -H "Authorization: Bearer exc_live_<sua-chave>"

Resposta 200 (object)

3 campos
  • minimumobjectobrigatório

    pode ser vazio (null)

    4 campos de minimum
    • departureIdstringobrigatório
    • minimumPassengersintegerobrigatório

      -9007199254740991 a 9007199254740991

    • confirmBystringobrigatório
    • reservedintegerobrigatório

      -9007199254740991 a 9007199254740991

  • statusobjectobrigatório

    pode ser vazio (null)

    4 campos de status
    • missingintegerobrigatório

      -9007199254740991 a 9007199254740991

    • reachedbooleanobrigatório
    • deadlinePassedbooleanobrigatório
    • canCancelbooleanobrigatório
  • startsAtstringobrigatório
Exemplo de resposta
{
  "minimum": {
    "departureId": "<id>",
    "minimumPassengers": -9007199254740991,
    "confirmBy": "texto",
    "reserved": -9007199254740991
  },
  "status": {
    "missing": -9007199254740991,
    "reached": true,
    "deadlinePassed": true,
    "canCancel": true
  },
  "startsAt": "texto"
}

Atualizar mínimo de passageiros da saída

PUT/organizations/{organizationId}/cancellation-rules/departures/{id}/minimum

Permissão da chave: departure:publish

Parâmetros do caminho

  • idstringobrigatório

    Identificador da saída

Corpo (JSON)

  • minimumPassengersintegerobrigatório

    1 a 500

  • confirmBystringobrigatório

    data AAAA-MM-DD

Exemplo
curl -X PUT "<endereço-da-api>/api/organizations/<id-da-agência>/cancellation-rules/departures/<id>/minimum" \
  -H "Authorization: Bearer exc_live_<sua-chave>" \
  -H "Content-Type: application/json" \
  -d '{
  "minimumPassengers": 1,
  "confirmBy": "2026-12-20"
}'

Resposta 200 (object)

3 campos
  • minimumobjectobrigatório

    pode ser vazio (null)

    4 campos de minimum
    • departureIdstringobrigatório
    • minimumPassengersintegerobrigatório

      -9007199254740991 a 9007199254740991

    • confirmBystringobrigatório
    • reservedintegerobrigatório

      -9007199254740991 a 9007199254740991

  • statusobjectobrigatório

    pode ser vazio (null)

    4 campos de status
    • missingintegerobrigatório

      -9007199254740991 a 9007199254740991

    • reachedbooleanobrigatório
    • deadlinePassedbooleanobrigatório
    • canCancelbooleanobrigatório
  • startsAtstringobrigatório
Exemplo de resposta
{
  "minimum": {
    "departureId": "<id>",
    "minimumPassengers": -9007199254740991,
    "confirmBy": "texto",
    "reserved": -9007199254740991
  },
  "status": {
    "missing": -9007199254740991,
    "reached": true,
    "deadlinePassed": true,
    "canCancel": true
  },
  "startsAt": "texto"
}

Remover mínimo de passageiros da saída

DELETE/organizations/{organizationId}/cancellation-rules/departures/{id}/minimum

Permissão da chave: departure:publish

Parâmetros do caminho

  • idstringobrigatório

    Identificador da saída

Exemplo
curl -X DELETE "<endereço-da-api>/api/organizations/<id-da-agência>/cancellation-rules/departures/<id>/minimum" \
  -H "Authorization: Bearer exc_live_<sua-chave>"

Resposta 204 sem conteúdo

Ver política de cancelamento

GET/organizations/{organizationId}/cancellation-rules/policy

Permissão da chave: excursion:read

Exemplo
curl "<endereço-da-api>/api/organizations/<id-da-agência>/cancellation-rules/policy" \
  -H "Authorization: Bearer exc_live_<sua-chave>"

Resposta 200 (object)

1 campo
  • policyobjectobrigatório

    pode ser vazio (null)

    2 campos de policy
    • bandsarray<object>obrigatório
      2 campos de bands
      • minDaysintegerobrigatório

        0 a 365

      • refundPercentintegerobrigatório

        0 a 100

    • updatedAtintegerobrigatório

      -9007199254740991 a 9007199254740991

Exemplo de resposta
{
  "policy": {
    "bands": [
      {
        "minDays": 0,
        "refundPercent": 0
      }
    ],
    "updatedAt": -9007199254740991
  }
}

Atualizar política de cancelamento

PUT/organizations/{organizationId}/cancellation-rules/policy

Permissão da chave: organization:manage

Corpo (JSON)

  • bandsarray<object>obrigatório

    1 a 8 itens

    2 campos de bands
    • minDaysintegerobrigatório

      0 a 365

    • refundPercentintegerobrigatório

      0 a 100

Exemplo
curl -X PUT "<endereço-da-api>/api/organizations/<id-da-agência>/cancellation-rules/policy" \
  -H "Authorization: Bearer exc_live_<sua-chave>" \
  -H "Content-Type: application/json" \
  -d '{
  "bands": [
    {
      "minDays": 0,
      "refundPercent": 0
    }
  ]
}'

Resposta 200 (object)

1 campo
  • policyobjectobrigatório

    pode ser vazio (null)

    2 campos de policy
    • bandsarray<object>obrigatório
      2 campos de bands
      • minDaysintegerobrigatório

        0 a 365

      • refundPercentintegerobrigatório

        0 a 100

    • updatedAtintegerobrigatório

      -9007199254740991 a 9007199254740991

Exemplo de resposta
{
  "policy": {
    "bands": [
      {
        "minDays": 0,
        "refundPercent": 0
      }
    ],
    "updatedAt": -9007199254740991
  }
}

Remover política de cancelamento

DELETE/organizations/{organizationId}/cancellation-rules/policy

Permissão da chave: organization:manage

Exemplo
curl -X DELETE "<endereço-da-api>/api/organizations/<id-da-agência>/cancellation-rules/policy" \
  -H "Authorization: Bearer exc_live_<sua-chave>"

Resposta 204 sem conteúdo

Assinatura de contrato

Ver assinatura do contrato da reserva

GET/organizations/{organizationId}/contract-signature/bookings/{id}

Permissão da chave: booking:read

Parâmetros do caminho

  • idstringobrigatório

    Identificador da reserva

Exemplo
curl "<endereço-da-api>/api/organizations/<id-da-agência>/contract-signature/bookings/<id>" \
  -H "Authorization: Bearer exc_live_<sua-chave>"

Resposta 200 (object)

2 campos
  • signatureobjectobrigatório

    pode ser vazio (null)

    5 campos de signature
    • codestringobrigatório
    • signerNamestringobrigatório
    • signedAtstringobrigatório
    • documentHashstringobrigatório
    • signatureHashstringobrigatório
  • signerobjectobrigatório
    2 campos de signer
    • namestringobrigatório
    • emailstringobrigatório
Exemplo de resposta
{
  "signature": {
    "code": "texto",
    "signerName": "texto",
    "signedAt": "texto",
    "documentHash": "texto",
    "signatureHash": "texto"
  },
  "signer": {
    "name": "texto",
    "email": "texto"
  }
}

Viagem de menores

Ver autorização de viagem de menores da reserva

GET/organizations/{organizationId}/minor-travel/bookings/{id}

Permissão da chave: booking:read

Parâmetros do caminho

  • idstringobrigatório

    Identificador da reserva

Parâmetros de consulta

  • pageintegeropcional

    1 a 100000 · padrão 1

  • sizeintegeropcional

    1 a 100 · padrão 20

  • searchstringopcional

    até 100 caracteres · padrão ""

  • statusstringopcional

    Valores: not-requiredpendingprovided

Exemplo
curl "<endereço-da-api>/api/organizations/<id-da-agência>/minor-travel/bookings/<id>" \
  -H "Authorization: Bearer exc_live_<sua-chave>"

Resposta 200 (object)

2 campos
  • itemsarray<object>obrigatório
    11 campos de items
    • passengerIdstringobrigatório
    • bookingIdstringobrigatório
    • namestringobrigatório
    • ageintegerobrigatório

      -9007199254740991 a 9007199254740991

    • companionstringobrigatório

      pode ser vazio (null)

      Valores: parentsrelativeauthorized-adultunaccompanied

    • responsiblePassengerIdstringobrigatório

      pode ser vazio (null)

    • responsibleNamestringobrigatório

      pode ser vazio (null)

    • proofstringobrigatório

      pode ser vazio (null)

      Valores: aevnotarizedjudicialkinship

    • aevCodestringobrigatório

      pode ser vazio (null)

    • rulestringobrigatório

      Valores: noneunknownkinshipauthorization

    • statusstringobrigatório

      Valores: not-requiredpendingprovided

  • paginationobjectobrigatório
    4 campos de pagination
    • pageintegerobrigatório

      1 a 9007199254740991

    • sizeintegerobrigatório

      1 a 9007199254740991

    • totalintegerobrigatório

      0 a 9007199254740991

    • pagesintegerobrigatório

      0 a 9007199254740991

Exemplo de resposta
{
  "items": [
    {
      "passengerId": "<id>",
      "bookingId": "<id>",
      "name": "texto",
      "age": -9007199254740991,
      "companion": "parents",
      "responsiblePassengerId": "<id>",
      "responsibleName": "texto",
      "proof": "aev",
      "aevCode": "texto",
      "rule": "none",
      "status": "not-required"
    }
  ],
  "pagination": {
    "page": 1,
    "size": 1,
    "total": 0,
    "pages": 0
  }
}

Ver autorização de viagem de menores da saída

GET/organizations/{organizationId}/minor-travel/departures/{id}

Permissão da chave: checkin:read

Parâmetros do caminho

  • idstringobrigatório

    Identificador da saída

Parâmetros de consulta

  • pageintegeropcional

    1 a 100000 · padrão 1

  • sizeintegeropcional

    1 a 100 · padrão 20

  • searchstringopcional

    até 100 caracteres · padrão ""

  • statusstringopcional

    Valores: not-requiredpendingprovided

Exemplo
curl "<endereço-da-api>/api/organizations/<id-da-agência>/minor-travel/departures/<id>" \
  -H "Authorization: Bearer exc_live_<sua-chave>"

Resposta 200 (object)

2 campos
  • itemsarray<object>obrigatório
    11 campos de items
    • passengerIdstringobrigatório
    • bookingIdstringobrigatório
    • namestringobrigatório
    • ageintegerobrigatório

      -9007199254740991 a 9007199254740991

    • companionstringobrigatório

      pode ser vazio (null)

      Valores: parentsrelativeauthorized-adultunaccompanied

    • responsiblePassengerIdstringobrigatório

      pode ser vazio (null)

    • responsibleNamestringobrigatório

      pode ser vazio (null)

    • proofstringobrigatório

      pode ser vazio (null)

      Valores: aevnotarizedjudicialkinship

    • aevCodestringobrigatório

      pode ser vazio (null)

    • rulestringobrigatório

      Valores: noneunknownkinshipauthorization

    • statusstringobrigatório

      Valores: not-requiredpendingprovided

  • paginationobjectobrigatório
    4 campos de pagination
    • pageintegerobrigatório

      1 a 9007199254740991

    • sizeintegerobrigatório

      1 a 9007199254740991

    • totalintegerobrigatório

      0 a 9007199254740991

    • pagesintegerobrigatório

      0 a 9007199254740991

Exemplo de resposta
{
  "items": [
    {
      "passengerId": "<id>",
      "bookingId": "<id>",
      "name": "texto",
      "age": -9007199254740991,
      "companion": "parents",
      "responsiblePassengerId": "<id>",
      "responsibleName": "texto",
      "proof": "aev",
      "aevCode": "texto",
      "rule": "none",
      "status": "not-required"
    }
  ],
  "pagination": {
    "page": 1,
    "size": 1,
    "total": 0,
    "pages": 0
  }
}

Atualizar autorização de viagem de menores do passageiro

PUT/organizations/{organizationId}/minor-travel/passengers/{id}

Permissão da chave: passenger:update

Parâmetros do caminho

  • idstringobrigatório

    Identificador do passageiro

Corpo (JSON)

  • companionstringobrigatório

    Valores: parentsrelativeauthorized-adultunaccompanied

  • responsiblePassengerIdstringobrigatório

    até 100 caracteres · pode ser vazio (null)

  • proofstringobrigatório

    pode ser vazio (null)

    Valores: aevnotarizedjudicialkinship

  • aevCodestringobrigatório

    até 60 caracteres · pode ser vazio (null)

Exemplo
curl -X PUT "<endereço-da-api>/api/organizations/<id-da-agência>/minor-travel/passengers/<id>" \
  -H "Authorization: Bearer exc_live_<sua-chave>" \
  -H "Content-Type: application/json" \
  -d '{
  "companion": "parents",
  "responsiblePassengerId": "<id>",
  "proof": "aev",
  "aevCode": "texto"
}'

Resposta 200 (object)

11 campos
  • passengerIdstringobrigatório
  • bookingIdstringobrigatório
  • namestringobrigatório
  • ageintegerobrigatório

    -9007199254740991 a 9007199254740991

  • companionstringobrigatório

    pode ser vazio (null)

    Valores: parentsrelativeauthorized-adultunaccompanied

  • responsiblePassengerIdstringobrigatório

    pode ser vazio (null)

  • responsibleNamestringobrigatório

    pode ser vazio (null)

  • proofstringobrigatório

    pode ser vazio (null)

    Valores: aevnotarizedjudicialkinship

  • aevCodestringobrigatório

    pode ser vazio (null)

  • rulestringobrigatório

    Valores: noneunknownkinshipauthorization

  • statusstringobrigatório

    Valores: not-requiredpendingprovided

Exemplo de resposta
{
  "passengerId": "<id>",
  "bookingId": "<id>",
  "name": "texto",
  "age": -9007199254740991,
  "companion": "parents",
  "responsiblePassengerId": "<id>",
  "responsibleName": "texto",
  "proof": "aev",
  "aevCode": "texto",
  "rule": "none",
  "status": "not-required"
}

Frota

Listar veículos

GET/organizations/{organizationId}/fleet

Permissão da chave: fleet:read

Parâmetros de consulta

  • pageintegeropcional

    1 a 100000 · padrão 1

  • sizeintegeropcional

    1 a 100 · padrão 20

  • searchstringopcional

    até 100 caracteres · padrão ""

Exemplo
curl "<endereço-da-api>/api/organizations/<id-da-agência>/fleet" \
  -H "Authorization: Bearer exc_live_<sua-chave>"

Resposta 200 (object)

2 campos
  • itemsarray<object>obrigatório
    6 campos de items
    • organizationIdstringobrigatório
    • idstringobrigatório
    • namestringobrigatório
    • seatLayoutobjectobrigatório

      pode ser vazio (null)

      1 campo de seatLayout
      • seatsarray<object>obrigatório

        1 a 100 itens

        4 campos de seats
        • labelstringobrigatório

          até 20 caracteres

        • rowintegerobrigatório

          1 a 100

        • columnintegerobrigatório

          1 a 10

        • blockedbooleanobrigatório
    • platestringobrigatório

      pode ser vazio (null)

    • amenitiesarray<string>obrigatório

      Valores: air-conditioningrestroomwifipower-outletsreclining-seats

  • paginationobjectobrigatório
    4 campos de pagination
    • pageintegerobrigatório

      1 a 9007199254740991

    • sizeintegerobrigatório

      1 a 9007199254740991

    • totalintegerobrigatório

      0 a 9007199254740991

    • pagesintegerobrigatório

      0 a 9007199254740991

Exemplo de resposta
{
  "items": [
    {
      "organizationId": "<id>",
      "id": "texto",
      "name": "texto",
      "seatLayout": {
        "seats": [
          {
            "label": "texto",
            "row": 1,
            "column": 1,
            "blocked": true
          }
        ]
      },
      "plate": "texto",
      "amenities": [
        "air-conditioning"
      ]
    }
  ],
  "pagination": {
    "page": 1,
    "size": 1,
    "total": 0,
    "pages": 0
  }
}

Criar veículo

POST/organizations/{organizationId}/fleet

Permissão da chave: fleet:manage

Corpo (JSON)

  • namestringobrigatório

    2 a 120 caracteres

  • seatLayoutobjectopcional

    pode ser vazio (null)

    1 campo de seatLayout
    • seatsarray<object>obrigatório

      1 a 100 itens

      4 campos de seats
      • labelstringobrigatório

        até 20 caracteres

      • rowintegerobrigatório

        1 a 100

      • columnintegerobrigatório

        1 a 10

      • blockedbooleanobrigatório
  • platestringopcional

    pode ser vazio (null)

  • amenitiesarray<string>opcional

    0 a 5 itens

    Valores: air-conditioningrestroomwifipower-outletsreclining-seats

Exemplo
curl -X POST "<endereço-da-api>/api/organizations/<id-da-agência>/fleet" \
  -H "Authorization: Bearer exc_live_<sua-chave>" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "texto"
}'

Resposta 201 (object)

6 campos
  • organizationIdstringobrigatório
  • idstringobrigatório
  • namestringobrigatório
  • seatLayoutobjectobrigatório

    pode ser vazio (null)

    1 campo de seatLayout
    • seatsarray<object>obrigatório

      1 a 100 itens

      4 campos de seats
      • labelstringobrigatório

        até 20 caracteres

      • rowintegerobrigatório

        1 a 100

      • columnintegerobrigatório

        1 a 10

      • blockedbooleanobrigatório
  • platestringobrigatório

    pode ser vazio (null)

  • amenitiesarray<string>obrigatório

    Valores: air-conditioningrestroomwifipower-outletsreclining-seats

Exemplo de resposta
{
  "organizationId": "<id>",
  "id": "texto",
  "name": "texto",
  "seatLayout": {
    "seats": [
      {
        "label": "texto",
        "row": 1,
        "column": 1,
        "blocked": true
      }
    ]
  },
  "plate": "texto",
  "amenities": [
    "air-conditioning"
  ]
}

Editar veículo

PATCH/organizations/{organizationId}/fleet/{id}

Permissão da chave: fleet:manage

Parâmetros do caminho

  • idstringobrigatório

    Identificador do veículo

Corpo (JSON)

  • namestringopcional

    2 a 120 caracteres

  • seatLayoutobjectopcional

    pode ser vazio (null)

    1 campo de seatLayout
    • seatsarray<object>obrigatório

      1 a 100 itens

      4 campos de seats
      • labelstringobrigatório

        até 20 caracteres

      • rowintegerobrigatório

        1 a 100

      • columnintegerobrigatório

        1 a 10

      • blockedbooleanobrigatório
  • platestringopcional

    pode ser vazio (null)

  • amenitiesarray<string>opcional

    0 a 5 itens

    Valores: air-conditioningrestroomwifipower-outletsreclining-seats

Exemplo
curl -X PATCH "<endereço-da-api>/api/organizations/<id-da-agência>/fleet/<id>" \
  -H "Authorization: Bearer exc_live_<sua-chave>" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "texto",
  "seatLayout": {
    "seats": [
      {
        "label": "texto",
        "row": 1,
        "column": 1,
        "blocked": true
      }
    ]
  },
  "plate": "texto"
}'

Resposta 200 (object)

6 campos
  • organizationIdstringobrigatório
  • idstringobrigatório
  • namestringobrigatório
  • seatLayoutobjectobrigatório

    pode ser vazio (null)

    1 campo de seatLayout
    • seatsarray<object>obrigatório

      1 a 100 itens

      4 campos de seats
      • labelstringobrigatório

        até 20 caracteres

      • rowintegerobrigatório

        1 a 100

      • columnintegerobrigatório

        1 a 10

      • blockedbooleanobrigatório
  • platestringobrigatório

    pode ser vazio (null)

  • amenitiesarray<string>obrigatório

    Valores: air-conditioningrestroomwifipower-outletsreclining-seats

Exemplo de resposta
{
  "organizationId": "<id>",
  "id": "texto",
  "name": "texto",
  "seatLayout": {
    "seats": [
      {
        "label": "texto",
        "row": 1,
        "column": 1,
        "blocked": true
      }
    ]
  },
  "plate": "texto",
  "amenities": [
    "air-conditioning"
  ]
}

Destinos

Listar destinos

GET/organizations/{organizationId}/destinations

Permissão da chave: excursion:read

Parâmetros de consulta

  • pageintegeropcional

    1 a 100000 · padrão 1

  • sizeintegeropcional

    1 a 200 · padrão 200

  • searchstringopcional

    até 100 caracteres · padrão ""

Exemplo
curl "<endereço-da-api>/api/organizations/<id-da-agência>/destinations" \
  -H "Authorization: Bearer exc_live_<sua-chave>"

Resposta 200 (object)

2 campos
  • itemsarray<object>obrigatório
    18 campos de items
    • idstringobrigatório
    • namestringobrigatório
    • descriptionstringobrigatório
    • citystringobrigatório
    • regionstringobrigatório
    • countrystringobrigatório
    • addressstringobrigatório
    • latitudenumberobrigatório

      -140737488355328 a 140737488355327 · pode ser vazio (null)

    • longitudenumberobrigatório

      -140737488355328 a 140737488355327 · pode ser vazio (null)

    • highlightsstringobrigatório
    • visitorInformationstringobrigatório
    • createdAtintegerobrigatório

      -9007199254740991 a 9007199254740991

    • updatedAtintegerobrigatório

      -9007199254740991 a 9007199254740991

    • slugstringobrigatório
    • statusstringobrigatório

      Valores: draftpublishedarchived

    • revisionintegerobrigatório

      -9007199254740991 a 9007199254740991

    • sourcestringobrigatório

      pode ser vazio (null)

    • externalIdstringobrigatório

      pode ser vazio (null)

  • paginationobjectobrigatório
    4 campos de pagination
    • pageintegerobrigatório

      1 a 9007199254740991

    • sizeintegerobrigatório

      1 a 9007199254740991

    • totalintegerobrigatório

      0 a 9007199254740991

    • pagesintegerobrigatório

      0 a 9007199254740991

Exemplo de resposta
{
  "items": [
    {
      "id": "texto",
      "name": "texto",
      "description": "texto",
      "city": "texto",
      "region": "texto",
      "country": "texto",
      "address": "texto",
      "latitude": -140737488355328,
      "longitude": -140737488355328,
      "highlights": "texto",
      "visitorInformation": "texto",
      "createdAt": -9007199254740991,
      "updatedAt": -9007199254740991,
      "slug": "texto",
      "status": "draft",
      "revision": -9007199254740991,
      "source": "texto",
      "externalId": "<id>"
    }
  ],
  "pagination": {
    "page": 1,
    "size": 1,
    "total": 0,
    "pages": 0
  }
}

Mídia

Listar mídias

GET/organizations/{organizationId}/media

Permissão da chave (uma delas): excursion:read ou organization:manage

Parâmetros de consulta

  • pageintegeropcional

    1 a 100000 · padrão 1

  • sizeintegeropcional

    1 a 100 · padrão 20

  • searchstringopcional

    até 100 caracteres · padrão ""

  • contextstringopcional

    Valores: brandingagency-galleryexcursion-gallerydestination-galleryreview

  • parentIdstringopcional

    até 100 caracteres

Exemplo
curl "<endereço-da-api>/api/organizations/<id-da-agência>/media" \
  -H "Authorization: Bearer exc_live_<sua-chave>"

Resposta 200 (object)

3 campos
  • itemsarray<object>obrigatório
    16 campos de items
    • idstringobrigatório
    • variantstringobrigatório

      Valores: originalthumbmediumsharesquare

    • statusstringobrigatório

      Valores: uploadingprocessingreadyrejecteddeleted

    • contentTypestringobrigatório
    • filenamestringobrigatório
    • altstringobrigatório

      pode ser vazio (null)

    • sortOrderintegerobrigatório

      -9007199254740991 a 9007199254740991

    • sizeintegerobrigatório

      -9007199254740991 a 9007199254740991

    • widthintegerobrigatório

      -9007199254740991 a 9007199254740991 · pode ser vazio (null)

    • heightintegerobrigatório

      -9007199254740991 a 9007199254740991 · pode ser vazio (null)

    • durationnumberobrigatório

      pode ser vazio (null)

    • createdAtintegerobrigatório

      -9007199254740991 a 9007199254740991

    • updatedAtintegerobrigatório

      -9007199254740991 a 9007199254740991

    • previewUrlstringopcional
    • contextstringobrigatório

      Valores: brandingagency-galleryexcursion-gallerydestination-galleryreview

    • rolestringobrigatório

      Valores: logoherogalleryposter

  • paginationobjectobrigatório
    4 campos de pagination
    • pageintegerobrigatório

      1 a 9007199254740991

    • sizeintegerobrigatório

      1 a 9007199254740991

    • totalintegerobrigatório

      0 a 9007199254740991

    • pagesintegerobrigatório

      0 a 9007199254740991

  • readyCountsobjectobrigatório
Exemplo de resposta
{
  "items": [
    {
      "id": "texto",
      "variant": "original",
      "status": "uploading",
      "contentType": "texto",
      "filename": "texto",
      "alt": "texto",
      "sortOrder": -9007199254740991,
      "size": -9007199254740991,
      "width": -9007199254740991,
      "height": -9007199254740991,
      "duration": 0,
      "createdAt": -9007199254740991,
      "updatedAt": -9007199254740991,
      "previewUrl": "texto",
      "context": "branding",
      "role": "logo"
    }
  ],
  "pagination": {
    "page": 1,
    "size": 1,
    "total": 0,
    "pages": 0
  },
  "readyCounts": {}
}

Editar mídia

PATCH/organizations/{organizationId}/media/{id}

Permissão da chave (uma delas): excursion:update ou organization:manage

Parâmetros do caminho

  • idstringobrigatório

    Identificador da mídia

Corpo (JSON)

  • altstringopcional

    até 300 caracteres

  • sortOrderintegeropcional

    0 a 1000

Exemplo
curl -X PATCH "<endereço-da-api>/api/organizations/<id-da-agência>/media/<id>" \
  -H "Authorization: Bearer exc_live_<sua-chave>" \
  -H "Content-Type: application/json" \
  -d '{
  "alt": "texto",
  "sortOrder": 0
}'

Resposta 200 (object)

16 campos
  • idstringobrigatório
  • variantstringobrigatório

    Valores: originalthumbmediumsharesquare

  • statusstringobrigatório

    Valores: uploadingprocessingreadyrejecteddeleted

  • contentTypestringobrigatório
  • filenamestringobrigatório
  • altstringobrigatório

    pode ser vazio (null)

  • sortOrderintegerobrigatório

    -9007199254740991 a 9007199254740991

  • sizeintegerobrigatório

    -9007199254740991 a 9007199254740991

  • widthintegerobrigatório

    -9007199254740991 a 9007199254740991 · pode ser vazio (null)

  • heightintegerobrigatório

    -9007199254740991 a 9007199254740991 · pode ser vazio (null)

  • durationnumberobrigatório

    pode ser vazio (null)

  • createdAtintegerobrigatório

    -9007199254740991 a 9007199254740991

  • updatedAtintegerobrigatório

    -9007199254740991 a 9007199254740991

  • previewUrlstringopcional
  • contextstringobrigatório

    Valores: brandingagency-galleryexcursion-gallerydestination-galleryreview

  • rolestringobrigatório

    Valores: logoherogalleryposter

Exemplo de resposta
{
  "id": "texto",
  "variant": "original",
  "status": "uploading",
  "contentType": "texto",
  "filename": "texto",
  "alt": "texto",
  "sortOrder": -9007199254740991,
  "size": -9007199254740991,
  "width": -9007199254740991,
  "height": -9007199254740991,
  "duration": 0,
  "createdAt": -9007199254740991,
  "updatedAt": -9007199254740991,
  "previewUrl": "texto",
  "context": "branding",
  "role": "logo"
}

Excluir mídia

DELETE/organizations/{organizationId}/media/{id}

Permissão da chave (uma delas): excursion:update ou organization:manage

Parâmetros do caminho

  • idstringobrigatório

    Identificador da mídia

Exemplo
curl -X DELETE "<endereço-da-api>/api/organizations/<id-da-agência>/media/<id>" \
  -H "Authorization: Bearer exc_live_<sua-chave>"

Resposta 204 sem conteúdo

Concluir o envio da mídia

POST/organizations/{organizationId}/media/{id}/complete

Permissão da chave (uma delas): excursion:update ou organization:manage

Parâmetros do caminho

  • idstringobrigatório

    Identificador da mídia

Exemplo
curl -X POST "<endereço-da-api>/api/organizations/<id-da-agência>/media/<id>/complete" \
  -H "Authorization: Bearer exc_live_<sua-chave>"

Resposta 200 (object)

16 campos
  • idstringobrigatório
  • variantstringobrigatório

    Valores: originalthumbmediumsharesquare

  • statusstringobrigatório

    Valores: uploadingprocessingreadyrejecteddeleted

  • contentTypestringobrigatório
  • filenamestringobrigatório
  • altstringobrigatório

    pode ser vazio (null)

  • sortOrderintegerobrigatório

    -9007199254740991 a 9007199254740991

  • sizeintegerobrigatório

    -9007199254740991 a 9007199254740991

  • widthintegerobrigatório

    -9007199254740991 a 9007199254740991 · pode ser vazio (null)

  • heightintegerobrigatório

    -9007199254740991 a 9007199254740991 · pode ser vazio (null)

  • durationnumberobrigatório

    pode ser vazio (null)

  • createdAtintegerobrigatório

    -9007199254740991 a 9007199254740991

  • updatedAtintegerobrigatório

    -9007199254740991 a 9007199254740991

  • previewUrlstringopcional
  • contextstringobrigatório

    Valores: brandingagency-galleryexcursion-gallerydestination-galleryreview

  • rolestringobrigatório

    Valores: logoherogalleryposter

Exemplo de resposta
{
  "id": "texto",
  "variant": "original",
  "status": "uploading",
  "contentType": "texto",
  "filename": "texto",
  "alt": "texto",
  "sortOrder": -9007199254740991,
  "size": -9007199254740991,
  "width": -9007199254740991,
  "height": -9007199254740991,
  "duration": 0,
  "createdAt": -9007199254740991,
  "updatedAt": -9007199254740991,
  "previewUrl": "texto",
  "context": "branding",
  "role": "logo"
}

Iniciar o envio de um arquivo

POST/organizations/{organizationId}/media/uploads

Permissão da chave (uma delas): excursion:update ou organization:manage

Corpo (JSON)

  • contextstringobrigatório

    Valores: brandingagency-galleryexcursion-gallerydestination-galleryreview

  • rolestringobrigatório

    Valores: logoherogalleryposter

  • parentIdstringobrigatório

    até 100 caracteres

  • filenamestringobrigatório

    até 180 caracteres

  • contentTypestringobrigatório

    Valores: image/jpegimage/pngimage/webpimage/avifvideo/mp4video/webm

  • sizeintegerobrigatório

    acima de 0 a 104857600

  • altstringobrigatório

    até 300 caracteres

  • widthintegeropcional

    1 a 20000

  • heightintegeropcional

    1 a 20000

  • durationnumberopcional

    0 a 3600

  • variantstringopcional

    padrão "original"

    Valores: originalthumbmediumsharesquare

  • originalIdstringopcional

    até 100 caracteres

Exemplo
curl -X POST "<endereço-da-api>/api/organizations/<id-da-agência>/media/uploads" \
  -H "Authorization: Bearer exc_live_<sua-chave>" \
  -H "Content-Type: application/json" \
  -d '{
  "context": "branding",
  "role": "logo",
  "parentId": "<id>",
  "filename": "texto",
  "contentType": "image/jpeg",
  "size": 1,
  "alt": "texto"
}'

Resposta 201 (object)

4 campos
  • assetobjectobrigatório
    16 campos de asset
    • idstringobrigatório
    • variantstringobrigatório

      Valores: originalthumbmediumsharesquare

    • statusstringobrigatório

      Valores: uploadingprocessingreadyrejecteddeleted

    • contentTypestringobrigatório
    • filenamestringobrigatório
    • altstringobrigatório

      pode ser vazio (null)

    • sortOrderintegerobrigatório

      -9007199254740991 a 9007199254740991

    • sizeintegerobrigatório

      -9007199254740991 a 9007199254740991

    • widthintegerobrigatório

      -9007199254740991 a 9007199254740991 · pode ser vazio (null)

    • heightintegerobrigatório

      -9007199254740991 a 9007199254740991 · pode ser vazio (null)

    • durationnumberobrigatório

      pode ser vazio (null)

    • createdAtintegerobrigatório

      -9007199254740991 a 9007199254740991

    • updatedAtintegerobrigatório

      -9007199254740991 a 9007199254740991

    • previewUrlstringopcional
    • contextstringobrigatório

      Valores: brandingagency-galleryexcursion-gallerydestination-galleryreview

    • rolestringobrigatório

      Valores: logoherogalleryposter

  • urlstringobrigatório
  • headersobjectobrigatório
  • expiresAtnumberobrigatório
Exemplo de resposta
{
  "asset": {
    "id": "texto",
    "variant": "original",
    "status": "uploading",
    "contentType": "texto",
    "filename": "texto",
    "alt": "texto",
    "sortOrder": -9007199254740991,
    "size": -9007199254740991,
    "width": -9007199254740991,
    "height": -9007199254740991,
    "duration": 0,
    "createdAt": -9007199254740991,
    "updatedAt": -9007199254740991,
    "previewUrl": "texto",
    "context": "branding",
    "role": "logo"
  },
  "url": "texto",
  "headers": {},
  "expiresAt": 0
}

Perfil público

Ver perfil público

GET/organizations/{organizationId}/public-profile

Permissão da chave: organization:manage

Exemplo
curl "<endereço-da-api>/api/organizations/<id-da-agência>/public-profile" \
  -H "Authorization: Bearer exc_live_<sua-chave>"

Resposta 200 (object)

4 campos
  • logoIdstringobrigatório

    pode ser vazio (null)

  • heroIdstringobrigatório

    pode ser vazio (null)

  • galleryIdsarray<string>obrigatório
  • featuredExcursionIdsarray<string>obrigatório
Exemplo de resposta
{
  "logoId": "<id>",
  "heroId": "<id>",
  "galleryIds": [
    "<id>"
  ],
  "featuredExcursionIds": [
    "<id>"
  ]
}

Atualizar perfil público

PUT/organizations/{organizationId}/public-profile

Permissão da chave: organization:manage

Corpo (JSON)

  • logoIdstringobrigatório

    até 100 caracteres · pode ser vazio (null)

  • heroIdstringobrigatório

    até 100 caracteres · pode ser vazio (null)

  • galleryIdsarray<string>obrigatório

    0 a 24 itens

  • featuredExcursionIdsarray<string>obrigatório

    0 a 12 itens

Exemplo
curl -X PUT "<endereço-da-api>/api/organizations/<id-da-agência>/public-profile" \
  -H "Authorization: Bearer exc_live_<sua-chave>" \
  -H "Content-Type: application/json" \
  -d '{
  "logoId": "<id>",
  "heroId": "<id>",
  "galleryIds": [
    "<id>"
  ],
  "featuredExcursionIds": [
    "<id>"
  ]
}'

Resposta 200 (object)

4 campos
  • logoIdstringobrigatório

    pode ser vazio (null)

  • heroIdstringobrigatório

    pode ser vazio (null)

  • galleryIdsarray<string>obrigatório
  • featuredExcursionIdsarray<string>obrigatório
Exemplo de resposta
{
  "logoId": "<id>",
  "heroId": "<id>",
  "galleryIds": [
    "<id>"
  ],
  "featuredExcursionIds": [
    "<id>"
  ]
}

Listar avaliações do perfil público

GET/organizations/{organizationId}/public-profile/reviews

Permissão da chave: organization:manage

Parâmetros de consulta

  • pageintegeropcional

    1 a 100000 · padrão 1

  • sizeintegeropcional

    1 a 100 · padrão 20

  • searchstringopcional

    até 100 caracteres · padrão ""

Exemplo
curl "<endereço-da-api>/api/organizations/<id-da-agência>/public-profile/reviews" \
  -H "Authorization: Bearer exc_live_<sua-chave>"

Resposta 200 (object)

2 campos
  • itemsarray<object>obrigatório
    16 campos de items
    • idstringobrigatório
    • organizationIdstringobrigatório
    • excursionIdstringobrigatório
    • bookingIdstringobrigatório
    • passengerIdstringobrigatório
    • authorNamestringobrigatório
    • ratingintegerobrigatório

      -9007199254740991 a 9007199254740991

    • commentstringobrigatório
    • dimensionsobjectobrigatório
    • statusstringobrigatório

      Valores: pendingpublishedhidden

    • moderationReasonstringobrigatório

      pode ser vazio (null)

    • moderatedBystringobrigatório

      pode ser vazio (null)

    • moderatedAtintegerobrigatório

      -9007199254740991 a 9007199254740991 · pode ser vazio (null)

    • createdAtintegerobrigatório

      -9007199254740991 a 9007199254740991

    • updatedAtintegerobrigatório

      -9007199254740991 a 9007199254740991

    • mediaarray<object>obrigatório
      16 campos de media
      • idstringobrigatório
      • variantstringobrigatório

        Valores: originalthumbmediumsharesquare

      • statusstringobrigatório

        Valores: uploadingprocessingreadyrejecteddeleted

      • contentTypestringobrigatório
      • filenamestringobrigatório
      • altstringobrigatório

        pode ser vazio (null)

      • sortOrderintegerobrigatório

        -9007199254740991 a 9007199254740991

      • sizeintegerobrigatório

        -9007199254740991 a 9007199254740991

      • widthintegerobrigatório

        -9007199254740991 a 9007199254740991 · pode ser vazio (null)

      • heightintegerobrigatório

        -9007199254740991 a 9007199254740991 · pode ser vazio (null)

      • durationnumberobrigatório

        pode ser vazio (null)

      • createdAtintegerobrigatório

        -9007199254740991 a 9007199254740991

      • updatedAtintegerobrigatório

        -9007199254740991 a 9007199254740991

      • previewUrlstringopcional
      • contextstringobrigatório

        Valores: brandingagency-galleryexcursion-gallerydestination-galleryreview

      • rolestringobrigatório

        Valores: logoherogalleryposter

  • paginationobjectobrigatório
    4 campos de pagination
    • pageintegerobrigatório

      1 a 9007199254740991

    • sizeintegerobrigatório

      1 a 9007199254740991

    • totalintegerobrigatório

      0 a 9007199254740991

    • pagesintegerobrigatório

      0 a 9007199254740991

Exemplo de resposta
{
  "items": [
    {
      "id": "texto",
      "organizationId": "<id>",
      "excursionId": "<id>",
      "bookingId": "<id>",
      "passengerId": "<id>",
      "authorName": "texto",
      "rating": -9007199254740991,
      "comment": "texto",
      "dimensions": {},
      "status": "pending",
      "moderationReason": "texto",
      "moderatedBy": "texto",
      "moderatedAt": -9007199254740991,
      "createdAt": -9007199254740991,
      "updatedAt": -9007199254740991,
      "media": [
        {
          "id": "texto",
          "variant": "original",
          "status": "uploading",
          "contentType": "texto",
          "filename": "texto",
          "alt": "texto",
          "sortOrder": -9007199254740991,
          "size": -9007199254740991,
          "width": -9007199254740991,
          "height": -9007199254740991,
          "duration": 0,
          "createdAt": -9007199254740991,
          "updatedAt": -9007199254740991,
          "previewUrl": "texto",
          "context": "branding",
          "role": "logo"
        }
      ]
    }
  ],
  "pagination": {
    "page": 1,
    "size": 1,
    "total": 0,
    "pages": 0
  }
}

Editar avaliação do perfil público

PATCH/organizations/{organizationId}/public-profile/reviews/{id}

Permissão da chave: organization:manage

Parâmetros do caminho

  • idstringobrigatório

    Identificador da avaliação

Corpo (JSON)

  • statusstringobrigatório

    Valores: publishedhidden

  • reasonstringobrigatório

    3 a 1000 caracteres

Exemplo
curl -X PATCH "<endereço-da-api>/api/organizations/<id-da-agência>/public-profile/reviews/<id>" \
  -H "Authorization: Bearer exc_live_<sua-chave>" \
  -H "Content-Type: application/json" \
  -d '{
  "status": "published",
  "reason": "texto"
}'

Resposta 200 (object)

15 campos
  • idstringobrigatório
  • organizationIdstringobrigatório
  • excursionIdstringobrigatório
  • bookingIdstringobrigatório
  • passengerIdstringobrigatório
  • authorNamestringobrigatório
  • ratingintegerobrigatório

    -9007199254740991 a 9007199254740991

  • commentstringobrigatório
  • dimensionsobjectobrigatório
  • statusstringobrigatório

    Valores: pendingpublishedhidden

  • moderationReasonstringobrigatório

    pode ser vazio (null)

  • moderatedBystringobrigatório

    pode ser vazio (null)

  • moderatedAtintegerobrigatório

    -9007199254740991 a 9007199254740991 · pode ser vazio (null)

  • createdAtintegerobrigatório

    -9007199254740991 a 9007199254740991

  • updatedAtintegerobrigatório

    -9007199254740991 a 9007199254740991

Exemplo de resposta
{
  "id": "texto",
  "organizationId": "<id>",
  "excursionId": "<id>",
  "bookingId": "<id>",
  "passengerId": "<id>",
  "authorName": "texto",
  "rating": -9007199254740991,
  "comment": "texto",
  "dimensions": {},
  "status": "pending",
  "moderationReason": "texto",
  "moderatedBy": "texto",
  "moderatedAt": -9007199254740991,
  "createdAt": -9007199254740991,
  "updatedAt": -9007199254740991
}

Perfil da agência

Ver perfil da agência

GET/organizations/{organizationId}/profile

Permissão da chave: organization:manage

Exemplo
curl "<endereço-da-api>/api/organizations/<id-da-agência>/profile" \
  -H "Authorization: Bearer exc_live_<sua-chave>"

Resposta 200 (object)

11 campos
  • idstringobrigatório
  • slugstringobrigatório
  • namestringobrigatório
  • statusstringobrigatório

    Valores: activesuspendedprospect

  • contactEmailstringobrigatório
  • contactPhonestringobrigatório
  • cadasturNumberstringobrigatório
  • descriptionstringobrigatório
  • aboutstringobrigatório
  • locationstringobrigatório
  • socialLinksarray<object>obrigatório
    2 campos de socialLinks
    • labelstringobrigatório
    • urlstringobrigatório
Exemplo de resposta
{
  "id": "texto",
  "slug": "texto",
  "name": "texto",
  "status": "active",
  "contactEmail": "texto",
  "contactPhone": "texto",
  "cadasturNumber": "texto",
  "description": "texto",
  "about": "texto",
  "location": "texto",
  "socialLinks": [
    {
      "label": "texto",
      "url": "texto"
    }
  ]
}

Atualizar perfil da agência

PATCH/organizations/{organizationId}/profile

Permissão da chave: organization:manage

Corpo (JSON)

  • namestringopcional

    2 a 150 caracteres

  • contactEmailstringopcional

    e-mail · pode ser vazio ("")

  • contactPhonestringopcional
  • cadasturNumberstringopcional
  • descriptionstringopcional

    até 2000 caracteres

  • aboutstringopcional

    até 6000 caracteres

  • locationstringopcional

    até 200 caracteres

  • socialLinksarray<object>opcional

    0 a 8 itens

    2 campos de socialLinks
    • labelstringobrigatório

      até 60 caracteres

    • urlstringobrigatório

      URL

Exemplo
curl -X PATCH "<endereço-da-api>/api/organizations/<id-da-agência>/profile" \
  -H "Authorization: Bearer exc_live_<sua-chave>" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "texto",
  "contactEmail": "nome@exemplo.com",
  "contactPhone": "texto"
}'

Resposta 200 (object)

11 campos
  • idstringobrigatório
  • slugstringobrigatório
  • namestringobrigatório
  • statusstringobrigatório

    Valores: activesuspendedprospect

  • contactEmailstringobrigatório
  • contactPhonestringobrigatório
  • cadasturNumberstringobrigatório
  • descriptionstringobrigatório
  • aboutstringobrigatório
  • locationstringobrigatório
  • socialLinksarray<object>obrigatório
    2 campos de socialLinks
    • labelstringobrigatório
    • urlstringobrigatório
Exemplo de resposta
{
  "id": "texto",
  "slug": "texto",
  "name": "texto",
  "status": "active",
  "contactEmail": "texto",
  "contactPhone": "texto",
  "cadasturNumber": "texto",
  "description": "texto",
  "about": "texto",
  "location": "texto",
  "socialLinks": [
    {
      "label": "texto",
      "url": "texto"
    }
  ]
}

Marketing

Ver configuração de marketing

GET/organizations/{organizationId}/agency-analytics

Permissão da chave: organization:manage

Exemplo
curl "<endereço-da-api>/api/organizations/<id-da-agência>/agency-analytics" \
  -H "Authorization: Bearer exc_live_<sua-chave>"

Resposta 200 (object)

6 campos
  • metaPixelIdstringobrigatório

    pode ser vazio (null)

  • ga4MeasurementIdstringobrigatório

    pode ser vazio (null)

  • metaTestEventCodestringobrigatório

    pode ser vazio (null)

  • metaConversionsApibooleanobrigatório
  • ga4MeasurementProtocolbooleanobrigatório
  • deliveriesobjectobrigatório
    4 campos de deliveries
    • pendingintegerobrigatório

      -9007199254740991 a 9007199254740991

    • sentintegerobrigatório

      -9007199254740991 a 9007199254740991

    • failedintegerobrigatório

      -9007199254740991 a 9007199254740991

    • lastErrorstringobrigatório

      pode ser vazio (null)

Exemplo de resposta
{
  "metaPixelId": "<id>",
  "ga4MeasurementId": "<id>",
  "metaTestEventCode": "texto",
  "metaConversionsApi": true,
  "ga4MeasurementProtocol": true,
  "deliveries": {
    "pending": -9007199254740991,
    "sent": -9007199254740991,
    "failed": -9007199254740991,
    "lastError": "texto"
  }
}

Atualizar configuração de marketing

PUT/organizations/{organizationId}/agency-analytics

Permissão da chave: organization:manage

Corpo (JSON)

  • metaPixelIdstringobrigatório

    pode ser vazio (null)

  • ga4MeasurementIdstringobrigatório

    pode ser vazio (null)

  • metaAccessTokenstringopcional

    pode ser vazio (null)

  • ga4ApiSecretstringopcional

    pode ser vazio (null)

  • metaTestEventCodestringopcional

    pode ser vazio (null)

Exemplo
curl -X PUT "<endereço-da-api>/api/organizations/<id-da-agência>/agency-analytics" \
  -H "Authorization: Bearer exc_live_<sua-chave>" \
  -H "Content-Type: application/json" \
  -d '{
  "metaPixelId": "<id>",
  "ga4MeasurementId": "<id>"
}'

Resposta 200 (object)

6 campos
  • metaPixelIdstringobrigatório

    pode ser vazio (null)

  • ga4MeasurementIdstringobrigatório

    pode ser vazio (null)

  • metaTestEventCodestringobrigatório

    pode ser vazio (null)

  • metaConversionsApibooleanobrigatório
  • ga4MeasurementProtocolbooleanobrigatório
  • deliveriesobjectobrigatório
    4 campos de deliveries
    • pendingintegerobrigatório

      -9007199254740991 a 9007199254740991

    • sentintegerobrigatório

      -9007199254740991 a 9007199254740991

    • failedintegerobrigatório

      -9007199254740991 a 9007199254740991

    • lastErrorstringobrigatório

      pode ser vazio (null)

Exemplo de resposta
{
  "metaPixelId": "<id>",
  "ga4MeasurementId": "<id>",
  "metaTestEventCode": "texto",
  "metaConversionsApi": true,
  "ga4MeasurementProtocol": true,
  "deliveries": {
    "pending": -9007199254740991,
    "sent": -9007199254740991,
    "failed": -9007199254740991,
    "lastError": "texto"
  }
}

Resumo

Ver resumo da agência

GET/organizations/{organizationId}/dashboard

Qualquer chave da agência

Exemplo
curl "<endereço-da-api>/api/organizations/<id-da-agência>/dashboard" \
  -H "Authorization: Bearer exc_live_<sua-chave>"

Resposta 200 (object)

5 campos
  • tripsintegerobrigatório

    -9007199254740991 a 9007199254740991 · pode ser vazio (null)

  • reservationsintegerobrigatório

    -9007199254740991 a 9007199254740991 · pode ser vazio (null)

  • upcomingDeparturesintegerobrigatório

    -9007199254740991 a 9007199254740991 · pode ser vazio (null)

  • financeobjectobrigatório

    pode ser vazio (null)

    3 campos de finance
    • receivedCentsintegerobrigatório

      valor em centavos · -9007199254740991 a 9007199254740991

    • outstandingCentsintegerobrigatório

      valor em centavos · -9007199254740991 a 9007199254740991

    • overdueCentsintegerobrigatório

      valor em centavos · -9007199254740991 a 9007199254740991

  • onlineSalesobjectobrigatório

    pode ser vazio (null)

    2 campos de onlineSales
    • publishedDeparturesintegerobrigatório

      -9007199254740991 a 9007199254740991

    • paymentConnectedbooleanobrigatório
Exemplo de resposta
{
  "trips": -9007199254740991,
  "reservations": -9007199254740991,
  "upcomingDepartures": -9007199254740991,
  "finance": {
    "receivedCents": -9007199254740991,
    "outstandingCents": -9007199254740991,
    "overdueCents": -9007199254740991
  },
  "onlineSales": {
    "publishedDepartures": -9007199254740991,
    "paymentConnected": true
  }
}

Listar saídas do resumo da agência

GET/organizations/{organizationId}/dashboard/departures

Permissão da chave: excursion:read

Parâmetros de consulta

  • pageintegeropcional

    1 a 100000 · padrão 1

  • sizeintegeropcional

    1 a 100 · padrão 20

  • searchstringopcional

    até 100 caracteres · padrão ""

Exemplo
curl "<endereço-da-api>/api/organizations/<id-da-agência>/dashboard/departures" \
  -H "Authorization: Bearer exc_live_<sua-chave>"

Resposta 200 (object)

2 campos
  • itemsarray<object>obrigatório
    4 campos de items
    • idstringobrigatório
    • titlestringobrigatório
    • startsAtstringobrigatório
    • statusstringobrigatório

      Valores: draftpublishedclosedcancelled

  • paginationobjectobrigatório
    4 campos de pagination
    • pageintegerobrigatório

      1 a 9007199254740991

    • sizeintegerobrigatório

      1 a 9007199254740991

    • totalintegerobrigatório

      0 a 9007199254740991

    • pagesintegerobrigatório

      0 a 9007199254740991

Exemplo de resposta
{
  "items": [
    {
      "id": "texto",
      "title": "texto",
      "startsAt": "texto",
      "status": "draft"
    }
  ],
  "pagination": {
    "page": 1,
    "size": 1,
    "total": 0,
    "pages": 0
  }
}

Contexto

Ver contexto da agência

GET/organizations/{organizationId}/context

Qualquer chave da agência

Exemplo
curl "<endereço-da-api>/api/organizations/<id-da-agência>/context" \
  -H "Authorization: Bearer exc_live_<sua-chave>"

Resposta 200 (object)

6 campos
  • userIdstringobrigatório
  • organizationIdstringobrigatório
  • permissionsarray<string>obrigatório

    Valores: excursion:readexcursion:createexcursion:updateexcursion:publishdeparture:readdeparture:createdeparture:publishbooking:readbooking:createbooking:updatepassenger:readpassenger:updatepayment:readpayment:createpayment:refundfinance:readfinance:managefleet:readfleet:managecheckin:readcheckin:manageteam:manageorganization:manage

  • planobjectobrigatório
    7 campos de plan
    • idstringobrigatório

      Valores: freeessentialprofessional

    • subscribedstringobrigatório

      Valores: freeessentialprofessional

    • statusstringobrigatório

      Valores: trialingactivepast_duecanceledfree

    • reasonstringobrigatório

      Valores: freetrialtrial-expiredactivegracegrace-expiredcanceled-until-period-endcanceled

    • endsAtintegerobrigatório

      -9007199254740991 a 9007199254740991 · pode ser vazio (null)

    • billingIntervalstringobrigatório

      pode ser vazio (null)

      Valores: monthlyyearly

    • paidThroughintegerobrigatório

      -9007199254740991 a 9007199254740991 · pode ser vazio (null)

  • capabilitiesobjectobrigatório
  • featuresobjectobrigatório
Exemplo de resposta
{
  "userId": "<id>",
  "organizationId": "<id>",
  "permissions": [
    "excursion:read"
  ],
  "plan": {
    "id": "free",
    "subscribed": "free",
    "status": "trialing",
    "reason": "free",
    "endsAt": -9007199254740991,
    "billingInterval": "monthly",
    "paidThrough": -9007199254740991
  },
  "capabilities": {},
  "features": {}
}

Webhooks

Listar webhooks

GET/organizations/{organizationId}/webhooks/endpoints

Permissão da chave: organization:manage

Parâmetros de consulta

  • pageintegeropcional

    1 a 100000 · padrão 1

  • sizeintegeropcional

    1 a 100 · padrão 20

  • searchstringopcional

    até 100 caracteres · padrão ""

Exemplo
curl "<endereço-da-api>/api/organizations/<id-da-agência>/webhooks/endpoints" \
  -H "Authorization: Bearer exc_live_<sua-chave>"

Resposta 200 (object)

3 campos
  • itemsarray<object>obrigatório
    8 campos de items
    • idstringobrigatório
    • urlstringobrigatório
    • eventsarray<string>obrigatório

      Valores: booking.createdbooking.confirmedbooking.cancelledbooking.expiredpayment.receivedpayment.refundedcontract.signed

    • activebooleanobrigatório
    • consecutiveFailuresintegerobrigatório

      -9007199254740991 a 9007199254740991

    • failingSinceintegerobrigatório

      -9007199254740991 a 9007199254740991 · pode ser vazio (null)

    • createdAtintegerobrigatório

      -9007199254740991 a 9007199254740991

    • updatedAtintegerobrigatório

      -9007199254740991 a 9007199254740991

  • paginationobjectobrigatório
    4 campos de pagination
    • pageintegerobrigatório

      1 a 9007199254740991

    • sizeintegerobrigatório

      1 a 9007199254740991

    • totalintegerobrigatório

      0 a 9007199254740991

    • pagesintegerobrigatório

      0 a 9007199254740991

  • eventsarray<string>obrigatório

    Valores: booking.createdbooking.confirmedbooking.cancelledbooking.expiredpayment.receivedpayment.refundedcontract.signed

Exemplo de resposta
{
  "items": [
    {
      "id": "texto",
      "url": "texto",
      "events": [
        "booking.created"
      ],
      "active": true,
      "consecutiveFailures": -9007199254740991,
      "failingSince": -9007199254740991,
      "createdAt": -9007199254740991,
      "updatedAt": -9007199254740991
    }
  ],
  "pagination": {
    "page": 1,
    "size": 1,
    "total": 0,
    "pages": 0
  },
  "events": [
    "booking.created"
  ]
}

Criar webhook

POST/organizations/{organizationId}/webhooks/endpoints

Permissão da chave: organization:manage

Corpo (JSON)

  • urlstringobrigatório

    URL · até 500 caracteres

  • eventsarray<string>obrigatório

    1 a 7 itens

    Valores: booking.createdbooking.confirmedbooking.cancelledbooking.expiredpayment.receivedpayment.refundedcontract.signed

  • activebooleanopcional

    padrão true

Exemplo
curl -X POST "<endereço-da-api>/api/organizations/<id-da-agência>/webhooks/endpoints" \
  -H "Authorization: Bearer exc_live_<sua-chave>" \
  -H "Content-Type: application/json" \
  -d '{
  "url": "https://exemplo.com",
  "events": [
    "booking.created"
  ]
}'

Resposta 201 (object)

2 campos
  • endpointobjectobrigatório
    8 campos de endpoint
    • idstringobrigatório
    • urlstringobrigatório
    • eventsarray<string>obrigatório

      Valores: booking.createdbooking.confirmedbooking.cancelledbooking.expiredpayment.receivedpayment.refundedcontract.signed

    • activebooleanobrigatório
    • consecutiveFailuresintegerobrigatório

      -9007199254740991 a 9007199254740991

    • failingSinceintegerobrigatório

      -9007199254740991 a 9007199254740991 · pode ser vazio (null)

    • createdAtintegerobrigatório

      -9007199254740991 a 9007199254740991

    • updatedAtintegerobrigatório

      -9007199254740991 a 9007199254740991

  • secretstringobrigatório
Exemplo de resposta
{
  "endpoint": {
    "id": "texto",
    "url": "texto",
    "events": [
      "booking.created"
    ],
    "active": true,
    "consecutiveFailures": -9007199254740991,
    "failingSince": -9007199254740991,
    "createdAt": -9007199254740991,
    "updatedAt": -9007199254740991
  },
  "secret": "texto"
}

Editar webhook

PATCH/organizations/{organizationId}/webhooks/endpoints/{id}

Permissão da chave: organization:manage

Parâmetros do caminho

  • idstringobrigatório

    Identificador do webhook

Corpo (JSON)

  • urlstringopcional

    URL · até 500 caracteres

  • eventsarray<string>opcional

    1 a 7 itens

    Valores: booking.createdbooking.confirmedbooking.cancelledbooking.expiredpayment.receivedpayment.refundedcontract.signed

  • activebooleanopcional
Exemplo
curl -X PATCH "<endereço-da-api>/api/organizations/<id-da-agência>/webhooks/endpoints/<id>" \
  -H "Authorization: Bearer exc_live_<sua-chave>" \
  -H "Content-Type: application/json" \
  -d '{
  "url": "https://exemplo.com",
  "events": [
    "booking.created"
  ],
  "active": true
}'

Resposta 200 (object)

8 campos
  • idstringobrigatório
  • urlstringobrigatório
  • eventsarray<string>obrigatório

    Valores: booking.createdbooking.confirmedbooking.cancelledbooking.expiredpayment.receivedpayment.refundedcontract.signed

  • activebooleanobrigatório
  • consecutiveFailuresintegerobrigatório

    -9007199254740991 a 9007199254740991

  • failingSinceintegerobrigatório

    -9007199254740991 a 9007199254740991 · pode ser vazio (null)

  • createdAtintegerobrigatório

    -9007199254740991 a 9007199254740991

  • updatedAtintegerobrigatório

    -9007199254740991 a 9007199254740991

Exemplo de resposta
{
  "id": "texto",
  "url": "texto",
  "events": [
    "booking.created"
  ],
  "active": true,
  "consecutiveFailures": -9007199254740991,
  "failingSince": -9007199254740991,
  "createdAt": -9007199254740991,
  "updatedAt": -9007199254740991
}

Excluir webhook

DELETE/organizations/{organizationId}/webhooks/endpoints/{id}

Permissão da chave: organization:manage

Parâmetros do caminho

  • idstringobrigatório

    Identificador do webhook

Exemplo
curl -X DELETE "<endereço-da-api>/api/organizations/<id-da-agência>/webhooks/endpoints/<id>" \
  -H "Authorization: Bearer exc_live_<sua-chave>"

Resposta 204 sem conteúdo

Listar entregas do webhook

GET/organizations/{organizationId}/webhooks/endpoints/{id}/deliveries

Permissão da chave: organization:manage

Parâmetros do caminho

  • idstringobrigatório

    Identificador do webhook

Parâmetros de consulta

  • pageintegeropcional

    1 a 100000 · padrão 1

  • sizeintegeropcional

    1 a 100 · padrão 20

  • searchstringopcional

    até 100 caracteres · padrão ""

Exemplo
curl "<endereço-da-api>/api/organizations/<id-da-agência>/webhooks/endpoints/<id>/deliveries" \
  -H "Authorization: Bearer exc_live_<sua-chave>"

Resposta 200 (object)

2 campos
  • itemsarray<object>obrigatório
    9 campos de items
    • idstringobrigatório
    • eventIdstringobrigatório
    • eventTypestringobrigatório
    • statusstringobrigatório

      Valores: pendingsentfailed

    • attemptsintegerobrigatório

      -9007199254740991 a 9007199254740991

    • responseStatusintegerobrigatório

      -9007199254740991 a 9007199254740991 · pode ser vazio (null)

    • lastErrorstringobrigatório

      pode ser vazio (null)

    • createdAtintegerobrigatório

      -9007199254740991 a 9007199254740991

    • sentAtintegerobrigatório

      -9007199254740991 a 9007199254740991 · pode ser vazio (null)

  • paginationobjectobrigatório
    4 campos de pagination
    • pageintegerobrigatório

      1 a 9007199254740991

    • sizeintegerobrigatório

      1 a 9007199254740991

    • totalintegerobrigatório

      0 a 9007199254740991

    • pagesintegerobrigatório

      0 a 9007199254740991

Exemplo de resposta
{
  "items": [
    {
      "id": "texto",
      "eventId": "<id>",
      "eventType": "texto",
      "status": "pending",
      "attempts": -9007199254740991,
      "responseStatus": -9007199254740991,
      "lastError": "texto",
      "createdAt": -9007199254740991,
      "sentAt": -9007199254740991
    }
  ],
  "pagination": {
    "page": 1,
    "size": 1,
    "total": 0,
    "pages": 0
  }
}

Gerar novo segredo do webhook

POST/organizations/{organizationId}/webhooks/endpoints/{id}/secret

Permissão da chave: organization:manage

Parâmetros do caminho

  • idstringobrigatório

    Identificador do webhook

Exemplo
curl -X POST "<endereço-da-api>/api/organizations/<id-da-agência>/webhooks/endpoints/<id>/secret" \
  -H "Authorization: Bearer exc_live_<sua-chave>"

Resposta 200 (object)

2 campos
  • endpointobjectobrigatório
    8 campos de endpoint
    • idstringobrigatório
    • urlstringobrigatório
    • eventsarray<string>obrigatório

      Valores: booking.createdbooking.confirmedbooking.cancelledbooking.expiredpayment.receivedpayment.refundedcontract.signed

    • activebooleanobrigatório
    • consecutiveFailuresintegerobrigatório

      -9007199254740991 a 9007199254740991

    • failingSinceintegerobrigatório

      -9007199254740991 a 9007199254740991 · pode ser vazio (null)

    • createdAtintegerobrigatório

      -9007199254740991 a 9007199254740991

    • updatedAtintegerobrigatório

      -9007199254740991 a 9007199254740991

  • secretstringobrigatório
Exemplo de resposta
{
  "endpoint": {
    "id": "texto",
    "url": "texto",
    "events": [
      "booking.created"
    ],
    "active": true,
    "consecutiveFailures": -9007199254740991,
    "failingSince": -9007199254740991,
    "createdAt": -9007199254740991,
    "updatedAt": -9007199254740991
  },
  "secret": "texto"
}

Enviar teste do webhook

POST/organizations/{organizationId}/webhooks/endpoints/{id}/test

Permissão da chave: organization:manage

Parâmetros do caminho

  • idstringobrigatório

    Identificador do webhook

Exemplo
curl -X POST "<endereço-da-api>/api/organizations/<id-da-agência>/webhooks/endpoints/<id>/test" \
  -H "Authorization: Bearer exc_live_<sua-chave>"

Resposta 200 (object)

9 campos
  • idstringobrigatório
  • eventIdstringobrigatório
  • eventTypestringobrigatório
  • statusstringobrigatório

    Valores: pendingsentfailed

  • attemptsintegerobrigatório

    -9007199254740991 a 9007199254740991

  • responseStatusintegerobrigatório

    -9007199254740991 a 9007199254740991 · pode ser vazio (null)

  • lastErrorstringobrigatório

    pode ser vazio (null)

  • createdAtintegerobrigatório

    -9007199254740991 a 9007199254740991

  • sentAtintegerobrigatório

    -9007199254740991 a 9007199254740991 · pode ser vazio (null)

Exemplo de resposta
{
  "id": "texto",
  "eventId": "<id>",
  "eventType": "texto",
  "status": "pending",
  "attempts": -9007199254740991,
  "responseStatus": -9007199254740991,
  "lastError": "texto",
  "createdAt": -9007199254740991,
  "sentAt": -9007199254740991
}

Pendências

Listar pendências

GET/organizations/{organizationId}/pendencies

Qualquer chave da agência

Parâmetros de consulta

  • pageintegeropcional

    1 a 100000 · padrão 1

  • sizeintegeropcional

    1 a 100 · padrão 20

  • searchstringopcional

    até 100 caracteres · padrão ""

  • kindstringopcional

    Valores: payment-reviewoverdue-installmentrefund-owedbelow-minimumminor-authorizationcontract-unsignedwaitlist-seatsagent-payouts

Exemplo
curl "<endereço-da-api>/api/organizations/<id-da-agência>/pendencies" \
  -H "Authorization: Bearer exc_live_<sua-chave>"

Resposta 200 (object)

2 campos
  • itemsarray<object>obrigatório
  • paginationobjectobrigatório
    4 campos de pagination
    • pageintegerobrigatório

      1 a 9007199254740991

    • sizeintegerobrigatório

      1 a 9007199254740991

    • totalintegerobrigatório

      0 a 9007199254740991

    • pagesintegerobrigatório

      0 a 9007199254740991

Exemplo de resposta
{
  "items": [
    {
      "type": "departure",
      "departure": {
        "id": "texto",
        "excursionId": "<id>",
        "title": "texto",
        "startsAt": "texto"
      },
      "summary": "texto",
      "deadline": "texto",
      "items": [
        {
          "key": "texto",
          "kind": "payment-review",
          "title": "texto",
          "detail": "texto",
          "deadline": "texto",
          "bookingId": "<id>",
          "departure": {
            "id": "texto",
            "excursionId": "<id>",
            "title": "texto",
            "startsAt": "texto"
          },
          "action": {
            "type": "installment-link",
            "bookingId": "<id>",
            "installmentId": "<id>",
            "amountCents": -9007199254740991,
            "checkoutUrl": "texto"
          }
        }
      ]
    }
  ],
  "pagination": {
    "page": 1,
    "size": 1,
    "total": 0,
    "pages": 0
  }
}

Ver resumo de pendências

GET/organizations/{organizationId}/pendencies/summary

Qualquer chave da agência

Exemplo
curl "<endereço-da-api>/api/organizations/<id-da-agência>/pendencies/summary" \
  -H "Authorization: Bearer exc_live_<sua-chave>"

Resposta 200 (object)

2 campos
  • totalintegerobrigatório

    0 a 9007199254740991

  • kindsobjectobrigatório
    8 campos de kinds
    • payment-reviewintegerobrigatório

      0 a 9007199254740991

    • overdue-installmentintegerobrigatório

      0 a 9007199254740991

    • refund-owedintegerobrigatório

      0 a 9007199254740991

    • below-minimumintegerobrigatório

      0 a 9007199254740991

    • minor-authorizationintegerobrigatório

      0 a 9007199254740991

    • contract-unsignedintegerobrigatório

      0 a 9007199254740991

    • waitlist-seatsintegerobrigatório

      0 a 9007199254740991

    • agent-payoutsintegerobrigatório

      0 a 9007199254740991

Exemplo de resposta
{
  "total": 0,
  "kinds": {
    "payment-review": 0,
    "overdue-installment": 0,
    "refund-owed": 0,
    "below-minimum": 0,
    "minor-authorization": 0,
    "contract-unsigned": 0,
    "waitlist-seats": 0,
    "agent-payouts": 0
  }
}