Saltar al contenido
Permisos (scopes)
Contrato OpenAPI 3.1: openapi.yaml
Empezar

Permisos (scopes) de la API

Cada scope abre un trozo del dominio. Sin el scope, la propiedad no existe en la respuesta y el endpoint responde 403.

Los scopes se piden al crear la integración y se asignan a cada clave (nunca más de los que tiene la integración). Un endpoint puede exigir varios: hacen falta todos. El que falte va en details.required_scope del error insufficient_scope.

ScopeQué abreEndpoints en v1
bookings:readLeer reservas (sin datos del pasajero ni precios)GET /bookings · GET /bookings/{id} · base de /bookings/{id}/external-id
bookings:createCrear reservasPróximamente
bookings:writeModificar reservasPróximamente
bookings:cancelCancelar reservasPróximamente
customers:readLeer clientes (hoteles, agencias, motor)GET /customers · GET /customers/{id}
customers:writeModificar clientesPróximamente
drivers:readLeer conductoresGET /drivers · GET /drivers/{id}
vehicles:readLeer vehículosGET /vehicles · GET /vehicles/{id}
pricing:readVer precios, IVA y forma de pago de las reservasAñade `pricing` a cada reserva (API y webhooks)
billing:readLeer datos de facturación del clientePróximamente
invoices:readLeer facturasPróximamente
payments:readLeer cobrosPróximamente
passengers:readVer nombre, teléfono y correo del pasajeroAñade `passenger` a cada reserva (API y webhooks)
tracking:readVer posición del vehículo en un servicioPróximamente
events:readLeer el registro de eventos de la organizaciónGET /events
webhooks:readVer los webhooks configuradosGET /webhooks · GET /webhooks/{id} · GET /webhooks/{id}/deliveries
webhooks:writeCrear, cambiar y borrar webhooksPOST /webhooks · PATCH /webhooks/{id} · DELETE /webhooks/{id} · POST /webhooks/{id}/test
links:readLeer identificadores externosGET /bookings/{id}/external-id
links:writeGuardar identificadores externosPUT y DELETE /bookings/{id}/external-id
Próximamente

bookings:create, bookings:write, bookings:cancel, customers:write, billing:read, invoices:read, payments:read y tracking:read se aceptan al crear una integración para no tener que tocarla cuando lleguen, pero hoy no abren nada. Cuando se activen se anunciará en el changelog.

Datos sensibles: pasajero y dinero

Una reserva con bookings:read trae lo operativo: cuándo, dónde, cuántos, qué vehículo, quién la ejecuta. El pasajero y el precio van aparte, y solo aparecen si la clave tiene el scope. Lo mismo en los webhooks: el cuerpo se construye con los scopes de la integración en el momento de entregar.

Con passengers:read

json
{
  "passenger": {
    "name": "Laura Sanz",
    "phone": "+34600000000",
    "email": "laura@example.com"
  }
}

Con pricing:read

json
{
  "pricing": {
    "currency": "EUR",
    "total": 48,
    "vat_pct": 10,
    "sale_total": null,
    "extras": [
      {
        "name": "Silla de bebé",
        "amount": 5,
        "per_passenger": false
      }
    ],
    "diet": null,
    "parking": null,
    "night_surcharge": null,
    "payment_mode": "cuenta",
    "payment_status": "pendiente",
    "paid_at": null
  }
}

Las notas internas, las observaciones, el chat, el cartel de recogida y la posición GPS no forman parte de la API en v1 con ningún scope.

Permisos (scopes) · API de WAT