# Rent a car API

> Fleet catalog, availability, customer accounts, reservations with pickup or delivery, and Fina Pay payment.

Fleet catalog, availability, customer accounts, reservations with pickup or delivery, and Fina Pay payment.

| Field | Value |
| --- | --- |
| Base URL | `https://fina.do/api/rent-car/v1` |
| Authentication | `X-Rent-Car-App-Key` (+ customer bearer token for account, reservations, addresses and devices) |
| OpenAPI 3.1 | [/api/rent-car/v1/openapi.json](https://fina.do/api/rent-car/v1/openapi.json) |
| Built for | Car rental apps and websites |

Shared rules (app key, envelope, /config, delivery quotes): [Storefront APIs](https://fina.do/developers/storefront-apis.md).

### Endpoints

Base URL: `https://fina.do/api/rent-car/v1`

| Method | Path | Summary | Auth |
| --- | --- | --- | --- |
| GET | `/config` | Get app configuration | App key |
| GET | `/catalog` | List rentable vehicles and prices, optionally filtered by make/model. Each vehicle carries has_vr (boolean) and vr (FinaVr \| null: 360 object / tour and AR model; the catalog is the vehicle detail). /config carries business.vr (the pickup office tour) | App key |
| GET | `/vehicle-models` | List available vehicle makes and models | App key |
| GET | `/availability` | Get monthly availability for a vehicle | App key |
| GET | `/reservations` | My reservations (newest first, up to 50) | App key + Customer token |
| POST | `/reservations` | Request a vehicle reservation | App key (or App key + Customer token) |
| POST | `/reservations/quote` | Quote a reservation (no reservation is created) | App key (or App key + Customer token) |
| GET | `/reservations/{id}` | Reservation detail | App key + Customer token |
| POST | `/reservations/{id}/cancel` | Cancel my reservation | App key + Customer token |
| GET | `/reservations/{id}/inspections` | Vehicle condition recorded by the business (pickup and return) | App key + Customer token |
| POST | `/reservations/{id}/inspections/{kind}/acknowledge` | Confirm I reviewed the vehicle condition | App key + Customer token |
| GET | `/reservations/{id}/payment` | Payment status of a reservation | App key + Customer token |
| POST | `/reservations/{id}/extension/quote` | Quote an extension (return the vehicle later) | App key + Customer token |
| POST | `/reservations/{id}/extension` | Request an extension | App key + Customer token |
| POST | `/reservations/{id}/extension/cancel` | Withdraw my open extension | App key + Customer token |
| PUT | `/me/driver` | Save my driver details | App key + Customer token |
| DELETE | `/me/driver` | Delete my driver details and photos | App key + Customer token |
| POST | `/uploads` | Upload a driver photo (license, ID card…) | App key + Customer token |
| GET | `/uploads/{id}` | Preview URL of my photo | App key + Customer token |
| DELETE | `/uploads/{id}` | Delete my photo | App key + Customer token |
| GET | `/me` | Perfil del cliente en esta granja | appKey + Customer token |
| PATCH | `/me` | Editar nombre y teléfono | appKey + Customer token |
| DELETE | `/me` | Baja de cuenta | appKey + Customer token |
| POST | `/me/delete-code` | Enviar al correo el código para confirmar la baja | appKey + Customer token |
| GET | `/addresses` | Libreta de direcciones | appKey + Customer token |
| POST | `/addresses` | Guardar una dirección | appKey + Customer token |
| PATCH | `/addresses/{id}` | Editar una dirección | appKey + Customer token |
| DELETE | `/addresses/{id}` | Borrar una dirección | appKey + Customer token |
| GET | `/locations` | Sucursales activas donde se puede recoger | App key |
| GET | `/geocode/reverse` | Dirección escrita de un punto («usar mi ubicación») | App key |
| POST | `/delivery/estimate` | Costo de envío a una dirección | appKey + Customer token |
| POST | `/devices` | Registrar el token push del dispositivo | appKey + Customer token |
| POST | `/devices/ping` | Enviar un aviso de prueba a mis dispositivos | appKey + Customer token |
| DELETE | `/devices/{id}` | Revocar el token | appKey + Customer token |
| GET | `/announcements/active` | Anuncios vigentes del negocio para quien abre la app | App key + Customer token (or App key) |
| POST | `/announcements/{id}/events` | Registrar que un anuncio se vio, se tocó un botón o se cerró | App key + Customer token (or App key) |
| GET | `/blog` | Datos del blog del negocio | App key + Customer token (or App key) |
| GET | `/blog/posts` | Posts publicados (sin cuerpo) | App key + Customer token (or App key) |
| GET | `/blog/posts/{id}` | Un post con su cuerpo según el acceso del cliente | App key + Customer token (or App key) |
| POST | `/blog/posts/{id}/purchase` | Comprar un post de pago con Fina Pay | appKey + Customer token |
| POST | `/blog/posts/{id}/tips` | Dejar una propina con Fina Pay | App key + Customer token (or App key) |
| POST | `/blog/membership/checkout` | Unirse a la membresía del blog (checkout de suscripción) | appKey + Customer token |
| GET | `/loyalty` | Programa de fidelidad, recompensas y tarjeta del cliente | App key + Customer token (or App key) |
| POST | `/loyalty/redemptions` | Canjear una recompensa con puntos | appKey + Customer token |
| POST | `/loyalty/redemptions/{id}/cancel` | Cancelar un canje propio pendiente | appKey + Customer token |
| POST | `/loyalty/check-in` | Check-in de autoservicio con el QR del mostrador | appKey + Customer token |
| GET | `/advisory` | Advisory service, request form and my cases | App key + Customer token (or App key) |
| POST | `/advisory/requests` | Request advisory | appKey + Customer token |
| GET | `/advisory/cases/{id}` | Case detail | appKey + Customer token |
| GET | `/advisory/cases/{id}/activities` | Case timeline visible to the client | appKey + Customer token |
| POST | `/advisory/cases/{id}/messages` | Send a message to the advisor | appKey + Customer token |
| GET | `/advisory/cases/{id}/dossiers` | Document folders of the case | appKey + Customer token |
| POST | `/advisory/uploads` | Upload a file (raw bytes) | appKey + Customer token |
| POST | `/advisory/dossier-items/{id}/files` | Attach an uploaded file to a document | appKey + Customer token |
| DELETE | `/advisory/files/{id}` | Delete one of my files | appKey + Customer token |
| GET | `/advisory/files/{id}/url` | Signed URL of a file | appKey + Customer token |
| GET | `/advisory/cases/{id}/visits` | Visits of the case | appKey + Customer token |
| POST | `/advisory/cases/{id}/visit-requests` | Request a visit | appKey + Customer token |
| GET | `/advisory/visits/{id}/report-pdf` | Signed URL of the published report PDF | appKey + Customer token |
| POST | `/advisory/visits/{id}/cancel` | Cancel a visit | appKey + Customer token |
| POST | `/advisory/visits/{id}/acknowledge` | Acknowledge a published visit report | appKey + Customer token |
| GET | `/advisory/cases/{id}/metrics` | Indicators of the case with their series | appKey + Customer token |
| POST | `/advisory/metrics/{id}/records` | Record a measurement | appKey + Customer token |
| GET | `/advisory/cases/{id}/market` | My offers and the opportunities shared with me | appKey + Customer token |
| POST | `/advisory/cases/{id}/offers` | Propose an offer | appKey + Customer token |
| POST | `/advisory/opportunities/{id}/respond` | Respond to a shared opportunity | appKey + Customer token |

Source: https://fina.do/developers#api-rent-car