| Endpoint | Headers | Params | Query | Form Data |
|---|---|---|---|---|
| POST /auth/login | - username: string (required) - password: string (required) |
|||
| GET /auth/getuser | ||||
| GET /auth/refreshToken | ||||
| DELETE /auth/logout |
| Endpoint | Headers | Params | Query | Form Data |
|---|---|---|---|---|
| POST /backblaze | - x-access-token: string (required) |
- file: file (required) |
||
| GET /backblaze/{filename} | - x-access-token: string (required) |
- filename: string (optional) |
||
| DELETE /backblaze/{filename} | - x-access-token: string (required) |
- filename: string (optional) |
| Endpoint | Headers | Params | Query | Form Data |
|---|---|---|---|---|
| GET /bookings | - x-access-token: string (required) |
- id: array (optional) -- Array of id to filter - status: array (optional) -- Array of status to filter - type: array (optional) -- Array of type to filter - car_id: array (optional) -- Array of car_id to filter - driver_id: array (optional) -- Array of driver_id to filter - dateFrom: date (YYYY-MM-DD) (optional) -- Filter by date from, will be filtered based on pickup_date >= dateFrom - dateTo: date (YYYY-MM-DD) (optional) -- Filter by date to, will be filtered based on dateTo <= dropoff_date - date_pickup: date (YYYY-MM-DD) (optional) -- Filter by date to, will be filtered based on date pickup - date: date (YYYY-MM-DD) (optional) -- Filter by date, will be filtered based on pickup_date <= date <= dropoff_date - notNull: array (optional) -- Filter not null value, e.g. driver_id,car_id => will filter bookings with not null driver_id and car_id |
||
| POST /bookings | - x-access-token: string (required) |
- user_id: uuid (required) - customer_id: uuid (required) - car_id: uuid (required) - dropoff_date: string (required) - dropoff_location: string (required) - dropoff_location_json: string (optional) - notes: string (optional) - pickup_date: string (required) - pickup_location: string (required) - pickup_location_json: string (optional) - price: number (optional) -- Total booking price - type: string (required) -- Type of booking ['self_drive', 'tour', 'transfer_service'] - tour_package: string (optional) -- Tour Package - pickup_price: number (optional) -- Price of pickup - dropoff_price: number (optional) -- Price of dropoff - additional_items: object (optional) -- additional items of bookings, can be filled with anything, e.g. { 'baby_seats': 2, umbrella: 3, insurance: true } - additional_informations: object (optional) -- additional informations of bookings, can be filled with anything, e.g. { 'hotel_reservation': 'https://backblaze.com', address: 'Jalan Wirasana' } - conditions: object (optional) -- conditions related to booking type, can be filled with anything, e.g. { 'withDriver': true, 'outside_town': true, 'tour_day_1_package': 6 } - auto_generate_invoice: boolean (optional) -- Auto generate invoice after booking created, will return 'booking_invoice' field - price_calculate_data: array (optional) -- Price Calculate Data |
||
| POST /bookings/login | - x-access-token: string (optional) -- Access token (optional for public access) |
- booking_code: string (required) -- Booking code/number (e.g., 'T-0001', 'S-0001') - email: string (required) -- Customer email address associated with the booking |
||
| PUT /bookings/:id/payment-link | - x-access-token: string (optional) -- Access token (optional for public access) |
- id: string (required) -- UUID booking ID |
- payment_link: string (required) -- URL of payment link (e.g., from Midtrans or other payment gateway) |
|
| PATCH /bookings/{id}/reschedule | - x-access-token: string (required) |
- id: string (required) |
- pickup_date: string (optional) -- Date of Pickup (YYYY-MM-DD HH:mm:ss) - dropoff_date: string (optional) - pickup_price: number (optional) -- Price of pickup - price: number (optional) -- Total booking price - dropoff_price: number (optional) -- Price of dropoff - payment_total: string (optional) - price_calculate_data: array (optional) -- Price Calculate Data |
|
| GET /bookings/{id} | - x-access-token: string (required) |
- id: string (required) |
- withOptions: boolean (optional) -- Get booking with available car options |
|
| PUT /bookings/{id} | - x-access-token: string (required) |
- id: string (required) |
- agreement_number: string (optional) - customer_id: uuid (optional) - car_condition_end: string (optional) - car_condition_end_images: array of string (optional) - car_condition_end_file_name: array of string (optional) - car_condition_start: string (optional) - car_condition_start_images: array of string (optional) - car_condition_start_file_name: array of string (optional) - car_details_id: uuid (optional) - car_id: uuid (optional) - dropoff_date: string (optional) - dropoff_location: string (optional) - dropoff_location_json: string (optional) - fuel_end: string (optional) - fuel_start: string (optional) - guaranty: string (optional) - kilometer_end: number (optional) - kilometer_start: number (optional) - notes: string (optional) - payment_method: string (optional) -- Only ['CASH', 'QRIS', 'TRANSFER','E-WALLET'] - payment_proofs_images: array of string (optional) - payment_proofs_file_name: array of string (optional) - payment_total: string (optional) - pickup_date: string (optional) - pickup_location: string (optional) - pickup_location_json: string (optional) - price: number (optional) -- Total booking price - received_by: string (optional) - returned_by: string (optional) - status: string (optional) -- Status of booking, only ['canceled', 'invalid'] available - type: string (optional) -- Type of booking ['self_drive', 'tour', 'transfer_service'] - additional_items: object (optional) -- additional items of bookings, can be filled with anything, e.g. { 'baby_seats': 2, umbrella: 3, insurance: true } - additional_informations: object (optional) -- additional informations of bookings, can be filled with anything, e.g. { 'hotel_reservation': 'https://backblaze.com', address: 'Jalan Wirasana' } - conditions: object (optional) -- conditions related to booking type, can be filled with anything, e.g. { 'withDriver': true, 'outside_town': true, 'tour_day_1_package': 6 } - price_calculate_data: array (optional) -- Price Calculate Data |
|
| DELETE /bookings/{id} | - x-access-token: string (required) |
- id: string (required) |
||
| GET /bookings/public/{id} | - id: string (required) |
- withOptions: boolean (optional) -- Get booking with available car options |
| Endpoint | Headers | Params | Query | Form Data |
|---|---|---|---|---|
| GET /insurances | ||||
| POST /insurances | - x-access-token: string (required) |
- name: string (required) - price: number (required) - description: string (optional) - insurance_code: string (required) |
||
| GET /insurances/{id} | - x-access-token: string (required) |
- id: string (required) |
||
| PUT /insurances/{id} | - x-access-token: string (required) |
- id: string (required) |
- name: string (optional) - price: number (optional) - description: string (optional) - insurance_code: string (optional) |
|
| DELETE /insurances/{id} | - x-access-token: string (required) |
- id: string (required) |
||
| GET /insurances/code/{insurance_code} | - x-access-token: string (required) |
- insurance_code: string (required) |
| Endpoint | Headers | Params | Query | Form Data |
|---|---|---|---|---|
| GET /booking-approvals | - x-access-token: string (required) |
- booking_id: uuid (optional) |
||
| POST /booking-approvals | - x-access-token: string (required) |
- user_id: uuid (required) - booking_id: uuid (required) - step: string (required) -- Step of approvals, available ['booked', 'prepared', 'operated', 'completed', 'canceled'] - notes: string (optional) |
||
| GET /booking-approvals/{id} | - x-access-token: string (required) |
- id: string (required) |
||
| DELETE /booking-approvals/{id} | - x-access-token: string (required) |
- id: string (required) |
| Endpoint | Headers | Params | Query | Form Data |
|---|---|---|---|---|
| GET /booking-invoices | - x-access-token: string (required) |
- relation: string (optional) -- Get relation of booking invoice separated by comma, available ['invoice_id','booking_id']. Example query: `?relation=bookings,invoices` - invoice_id: uuid (optional) -- Filter by invoice id, example '?invoice_id=qwerty' - booking_id: uuid (optional) -- Filter by booking id, example '?booking_id=qwerty' |
||
| POST /booking-invoices | - x-access-token: string (required) |
- booking_id: uuid (required) - invoice_id: uuid (required) - total: number (required) - description: string (required) - status: string (optional) -- Status of booking invoice, available ['PAID', 'NOT_PAID', 'NOT_FULLY_PAID'] - additional_info: string (optional) -- Additional info for booking invoice, save as json string |
||
| GET /booking-invoices/{id} | - x-access-token: string (required) |
- id: string (required) |
||
| DELETE /booking-invoices/{id} | - x-access-token: string (required) |
- id: string (required) |
| Endpoint | Headers | Params | Query | Form Data |
|---|---|---|---|---|
| GET /booking-allocations | - x-access-token: string (required) |
- dateFrom: date (YYYY/MM/DD HH:mm) (optional) -- Filter by date from, will be filtered based on pickup_date >= dateFrom - dateTo: date (YYYY/MM/DD HH:mm) (optional) -- Filter by date to, will be filtered based on dateTo <= dropoff_date - statuses: array (optional) -- Array of status to filter - carIds: array (optional) -- Array of car_id to filter |
| Endpoint | Headers | Params | Query | Form Data |
|---|---|---|---|---|
| GET /cars | - x-access-token: string (required) |
|||
| POST /cars | - x-access-token: string (required) |
- name: string (required) - brands: string (required) - transmision: string (required) - color: string (required) - status: string (required) -- Status of car, available ['open','booked','maintenance'] - additional_informations: object (optional) -- additional informations of cars, can be filled with anything |
||
| GET /cars/available | - datetimeFrom: datetime (required) -- Format: YYYY-MM-DD HH:mm:ss - datetimeTo: datetime (required) -- Format: YYYY-MM-DD HH:mm:ss - hidePriceless: boolean (optional) -- Hide car without price, default: true - withDetail: boolean (optional) -- Show car with detail, default: false - priceType: enum (optional) -- Only applicable if hidePriceless is true, will hide cars that doesn't have price for car-price type, available ['self_drive', 'transfer_service', 'tour'] - condition: object (optional) -- Only applicable if hidePriceless is true, will filter cars based on the condition field. Currently only support 'hour' (int) and 'areas' (gmap location object), e.g. {'hour':6}. |
|||
| GET /cars/{id} | - x-access-token: string (required) |
- id: string (required) |
||
| PUT /cars/{id} | - x-access-token: string (required) |
- id: string (required) |
- additional_informations: object (optional) -- additional informations of cars, can be filled with anything |
|
| DELETE /cars/{id} | - x-access-token: string (required) |
- id: string (required) |
| Endpoint | Headers | Params | Query | Form Data |
|---|---|---|---|---|
| GET /car-details | - x-access-token: string (required) |
|||
| POST /car-details | - x-access-token: string (required) |
- car_id: uuid (required) - plate: string (required) - last_kilometer: float (required) - cc: string (required) - year: string (required) - fuel: string (required) - additional_informations: object (optional) -- additional informations of cars, can be filled with anything |
||
| GET /car-details/{id} | - x-access-token: string (required) |
- id: string (required) |
||
| PUT /car-details/{id} | - x-access-token: string (required) |
- id: string (required) |
- additional_informations: object (optional) -- additional informations of cars, can be filled with anything |
|
| DELETE /car-details/{id} | - x-access-token: string (required) |
- id: string (required) |
| Endpoint | Headers | Params | Query | Form Data |
|---|---|---|---|---|
| GET /car-prices | - x-access-token: string (required) |
|||
| POST /car-prices | - x-access-token: string (required) |
- car_id: uuid (required) - condition_type: string (required) -- Condition type of car-prices, available ['default','date', 'time', 'datetime', 'out-of-town'] - type: string (required) -- Type of car-prices, available ['default','self_drive', 'transfer_service', 'tour'] - condition: object (optional) -- - If type = 'tour', condition must be defined and have 'hour' property with number value - If type = 'transfer_service', condition must be defined and have 'areas' property with array of string value - date_from: datetime (optional) - date_to: datetime (optional) - price: float (required) - is_repeat: boolean (optional) - overtime_price: float (optional) -- Overtime price for car price |
||
| POST /car-prices/calculate | - carId: uuid (required) - datetimeFrom: datetime (required) -- Datetime from for calculate price, format: YYYY-MM-DD HH:mm:ss - datetimeTo: datetime (required) -- Datetime to for calculate price, format: YYYY-MM-DD HH:mm:ss - type: enum (required) -- Type of car-prices, available ['self_drive', 'transfer_service', 'tour'] - hour: number (optional) -- If type = 'tour', this field is required - location: object (gmap location) (optional) -- - If type = 'transfer_service', this field is required if type = 'self_drive', this field will affecting pickup price - delivery_location: object (gmap location) (optional) -- If type = 'self_drive', this field will be affecting the delivery price - outOfTownDates: object of { datetime: zone } (optional) -- If type = 'tour', this field will be affecting the out of town price, format: { 'YYYY-MM-DD' : [1], 'YYYY-MM-DD': [1,2] } - additionalItems: object (optional) -- Additional items for calculate price, only support baby_seat, insurance , umbrella, and wedding for now, format: { baby_seat: 1, umbrella: 2, insurance: true, wedding: true } |
|||
| POST /v1/car-prices/calculate | - carId: uuid (required) - datetimeFrom: datetime (required) -- Datetime from for calculate price, format: YYYY-MM-DD HH:mm:ss - datetimeTo: datetime (required) -- Datetime to for calculate price, format: YYYY-MM-DD HH:mm:ss - type: enum (required) -- Type of car-prices, available ['self_drive', 'transfer_service', 'tour'] - insurance_id: string (optional) -- Insurance id - insurance_code: string (optional) -- Insurance code - hour: number (optional) -- If type = 'tour', this field is required - location: object (gmap location) (optional) -- - If type = 'transfer_service', this field is required if type = 'self_drive', this field will affecting pickup price - delivery_location: object (gmap location) (optional) -- If type = 'self_drive', this field will be affecting the delivery price - outOfTownDates: object of { datetime: zone } (optional) -- If type = 'tour', this field will be affecting the out of town price, format: { 'YYYY-MM-DD' : [1], 'YYYY-MM-DD': [1,2] } - additionalItems: array (optional) -- Additional items for calculate price, only support baby_seat, insurance , umbrella, and wedding for now, format: { baby_seat: 1, umbrella: 2, insurance: true, wedding: true } |
|||
| GET /car-prices/{id} | - x-access-token: string (required) |
- id: string (required) |
||
| PUT /car-prices/{id} | - x-access-token: string (required) |
- id: string (required) |
- car_id: uuid (required) - condition_type: string (required) -- Condition type of car-prices, available ['default','date', 'time', 'datetime', 'out-of-town'] - type: string (required) -- Type of car-prices, available ['default','self_drive', 'transfer_service', 'tour'] - condition: object (optional) -- - If type = 'tour', condition must be defined and have 'hour' property with number value; - If condition_type = 'out-of-town', condition must be defined and have 'zone' property with array number value - date_from: datetime (optional) - date_to: datetime (optional) - price: float (required) - is_repeat: boolean (optional) - overtime_price: float (optional) -- Overtime price for car price |
|
| DELETE /car-prices/{id} | - x-access-token: string (required) |
- id: string (required) |
| Endpoint | Headers | Params | Query | Form Data |
|---|---|---|---|---|
| GET /customers | - x-access-token: string (required) |
|||
| POST /customers | - x-access-token: string (required) |
- name: string (required) - email: string (required) - phone: string (required) - address: string (optional) - identity: string (optional) - identity_number: string (optional) - driving_license: string (optional) |
||
| GET /customers/{id} | - x-access-token: string (required) |
- id: string (required) |
||
| PUT /customers/{id} | - x-access-token: string (required) |
- id: string (required) |
||
| DELETE /customers/{id} | - x-access-token: string (required) |
- id: string (required) |
| Endpoint | Headers | Params | Query | Form Data |
|---|---|---|---|---|
| GET /departments | - x-access-token: string (required) |
| Endpoint | Headers | Params | Query | Form Data |
|---|---|---|---|---|
| POST /doku/generate | - amount: number (required) -- Amount of payment - customer: object (required) -- Customer object, check reference on https://dashboard.doku.com/docs/docs/jokul-checkout/jokul-checkout-integration#1-obtain-paymenturl-on-backend - invoice_number: string (required) -- Invoice number - items: array (required) -- Array of items, check reference on https://dashboard.doku.com/docs/docs/jokul-checkout/jokul-checkout-integration#1-obtain-paymenturl-on-backend - additional_info: object (optional) -- Additional informations, check reference on https://dashboard.doku.com/docs/docs/jokul-checkout/jokul-checkout-integration#1-obtain-paymenturl-on-backend |
|||
| POST /doku/notification |
| Endpoint | Headers | Params | Query | Form Data |
|---|---|---|---|---|
| POST /xendit/invoice | - amount: number (required) -- Amount of payment - customer: object (required) -- { id: string, surname: string, email: string, phone: string, } - invoice_number: string (required) -- Invoice number |
|||
| POST /xendit/notification | - external_id: string (required) -- {external_id : string(invoice number)} - payment_method: string (required) -- Payment method ex : BANK_TRANSFER - amount: number (required) -- Amount of payment |
| Endpoint | Headers | Params | Query | Form Data |
|---|---|---|---|---|
| GET /invoices | - x-access-token: string (required) |
- relation: string (optional) -- Get relation of invoice separated by comma, available ['users','customers', 'booking_invoices']. Example query: `?relation=users,customers` - customer_id: uuid (optional) -- Filter by customer id, example '?customer_id=qwerty' - status: string (optional) -- Filter by status, available options ['PAID', 'NOT_PAID', 'NOT_FULLY_PAID'], example '?status=PAID' |
||
| POST /invoices | - x-access-token: string (required) |
- customer_id: uuid (required) - total: number (required) - additional_info: string (optional) -- Additional info for invoice, save as json string - status: string (optional) -- Status of invoice, available ['PAID', 'NOT_PAID', 'NOT_FULLY_PAID'] - taxes: string (optional) -- Taxes for invoice, save as json string - payment_method: string (optional) - payment_total: number (optional) - payment_link: string (optional) - pdf_link: string (optional) |
||
| GET /invoices/{id}/send | - x-access-token: string (required) |
- id: uuid (required) |
- phone: string (required) -- Phone number or Group ID to send invoice - showPaymentLink: boolean (optional) -- Send payment link as well or not (default: true) |
|
| GET /invoices/{id} | - x-access-token: string (required) |
- id: uuid (required) |
||
| GET /invoices/{id} | - x-access-token: string (required) |
- id: uuid (required) |
||
| DELETE /invoices/{id} | - x-access-token: string (required) |
- id: uuid (required) |
| Endpoint | Headers | Params | Query | Form Data |
|---|---|---|---|---|
| POST /invoicesV2 | - x-access-token: string (required) |
| Endpoint | Headers | Params | Query | Form Data |
|---|---|---|---|---|
| GET /staffs | - x-access-token: string (required) |
- isDriver: string (optional) |
||
| POST /staffs | - x-access-token: string (required) |
- name: string (required) - email: string (optional) - phone: string (optional) - address: string (optional) - status: string (required) -- Status of staff, available ['default','available','schedule','holiday'] - department_id: string (optional) |
||
| GET /staffs/{id} | - x-access-token: string (required) |
- id: string (required) |
||
| PUT /staffs/{id} | - x-access-token: string (required) |
- id: string (required) |
||
| DELETE /staffs/{id} | - x-access-token: string (required) |
- id: string (required) |
| Endpoint | Headers | Params | Query | Form Data |
|---|---|---|---|---|
| GET /users | - x-access-token: string (required) |
|||
| POST /users | - x-access-token: string (required) |
- username: string (required) - password: string (required) - role: string (required) - staff_id: uuid (optional) - customer_id: uuid (optional) |
||
| GET /users/{id} | - x-access-token: string (required) |
- id: string (required) |
||
| PUT users/{id} | - x-access-token: string (required) |
- id: string (required) |
||
| DELETE users/{id} | - x-access-token: string (required) |
- id: string (required) |
| Endpoint | Headers | Params | Query | Form Data |
|---|---|---|---|---|
| GET /available-driver | - x-access-token: string (required) |
- date_start: string (required) - date_end: string (required) |
| Endpoint | Headers | Params | Query | Form Data |
|---|---|---|---|---|
| GET /user-activities | - Authorization: string (required) -- Bearer token |
- page: number (optional) -- number of page, default value 1 - perPage: enum (optional) -- total data per page, default value 10 - user: enum (optional) -- this is used for filter by username - startDate: enum (optional) -- start date of tracking user activity - endDate: enum (optional) -- end date of tracking user activity |
| Endpoint | Headers | Params | Query | Form Data |
|---|---|---|---|---|
| POST /whatsapp/webhook |
| Endpoint | Headers | Params | Query | Form Data |
|---|---|---|---|---|
| POST /storage | - x-access-token: string (optional) -- If not provided, by default will assume the user is a customer |
- file: file (required) |
||
| GET /storage/{filename} | - x-access-token: string (optional) -- If not provided, by default will assume the user is a customer |
- filename: string (optional) |
||
| DELETE /storage/{filename} | - x-access-token: string (required) |
- filename: string (optional) |
| Endpoint | Headers | Params | Query | Form Data |
|---|---|---|---|---|
| GET /common/gmaps-review | - placeId: string (required) |
| Endpoint | Headers | Params | Query | Form Data |
|---|---|---|---|---|
| GET /search-places | - x-access-token: string (required) |
- query: string (optional) |