Wheels.Next Zapier Integration API Documentation

This document describes the Wheels.Next endpoints used by the Zapier integration. Zapier calls these endpoints to validate a user's API key, list event types, register or unregister Zapier webhook URLs, and fetch sample payloads for trigger setup. When a subscribed event occurs in Wheels.Next, Wheels.Next posts the event payload to the Zapier target_url stored during subscription.

This is not a general-purpose public API. These endpoints exist to support the Zapier integration lifecycle.

Base URL

Production base URL:

https://openapi.wheelsys.io/webhooks/zapier

All paths below are relative to this base URL. The API version is part of the route (v1).

Authentication

Every Zapier endpoint requires an API key in the X-Api-Key request header.

X-Api-Key: {api_key}

The API key must:

If the key is missing or invalid, the API returns 401 Unauthorized.

Common Headers

Zapier should send:

Accept: application/json Content-Type: application/json X-Api-Key: {api_key}

Content-Type is only required for requests with a JSON body.

Endpoints

Validate Connection

Validates the user's Zapier API key and returns a display name for the Zapier connection.

POST /me

Request body: none.

Success response:

200 OK
{ "ConnectionName": "tenant-host.example.com" }

Error responses:

401 Unauthorized

List Event Types

Returns the event types that a Zap can subscribe to. This endpoint is intended for Zapier dynamic dropdown/input loading.

GET /events

Request body: none.

Success response:

200 OK
{ "results": [ { "id": 301, "label": "New Rental" }, { "id": 307, "label": "Rental Updated" } ] }

Response fields:

Field Type Description
results array Available Zapier trigger event types.
results[].id integer Event id to pass as event_type when subscribing or requesting samples.
results[].label string Human-readable label shown in Zapier.

Error responses:

401 Unauthorized

Create Subscription

Registers or updates the Zapier REST Hook URL for the selected event type. Zapier calls this when a Zap is turned on.

POST /subscriptions

Request body:

{ "target_url": "https://hooks.zapier.com/hooks/catch/123456/abcdef/", "event_type": "301" }

Request fields:

Field Type Required Description
target_url string yes Zapier-generated REST Hook URL. Wheels.Next stores this URL and posts event payloads to it.
event_type string yes Event id from GET /events. The value must parse to an integer.

Success response:

200 OK
{ "id": "sub_1001_45" }

Response fields:

Field Type Description
id string Subscription id. Zapier must store this value and pass it to the unsubscribe endpoint. Format: sub_{tenantId}_{databaseId}.

Notes:

Error responses:

401 Unauthorized

Invalid or non-numeric event_type values may result in a server-side validation/error response.

Remove Subscription

Deletes a previously registered Zapier REST Hook URL. Zapier calls this when a Zap is turned off.

DELETE /subscriptions/{id}

Path parameters:

Parameter Type Required Description
id string yes Subscription id returned by POST /subscriptions.

Success response:

204 No Content

Notes:

Error responses:

401 Unauthorized

Get Sample Data

Returns sample trigger data for a selected event type. Zapier uses this during trigger setup/testing to discover fields.

GET /samples?event_type={event_id}

Query parameters:

Parameter Type Required Description
event_type integer yes Event id from GET /events.

Success response:

200 OK
[ { "UID": "550e8400-e29b-41d4-a716-446655440000", "EventType": 301, "Timestamp": "2026-06-29T10:00:00Z", "Data": { "Id": 1234, "RentalNo": "R-000123", "Status": "Active" } } ]

Response fields:

Field Type Description
UID string Unique event message id.
EventType integer Event id.
Timestamp string UTC timestamp when the sample payload was generated.
Data object Event-specific sample data. Its fields vary by selected event type.

Notes:

Error responses:

401 Unauthorized

Missing or non-numeric event_type values may result in a server-side validation/error response.

Webhook Delivery

When a subscribed event occurs, Wheels.Next sends a JSON POST request to the Zapier target_url registered by POST /subscriptions.

Delivery request:

POST {target_url} Content-Type: application/json

Payload:

{ "UID": "550e8400-e29b-41d4-a716-446655440000", "EventType": 301, "Timestamp": "2026-06-29T10:00:00Z", "Data": { "Id": 1234, "RentalNo": "R-000123", "Status": "Active" } }

Payload fields:

Field Type Description
UID string Unique event delivery id generated by Wheels.Next.
EventType integer Event id matching the subscribed event type.
Timestamp string UTC timestamp when the event message was created.
Data object Event-specific payload. Its schema depends on the event type.

Delivery behavior:

Available Event Types

The following event types are currently registered for Zapier.

ID Key Label Sample/Data Source
301 rental.created New Rental ZappierRentalViewSample / ZappierRentalView
307 rental.updated Rental Updated ZappierRentalViewSample / ZappierRentalView
310 rental.deleted Rental Deleted zappierRentalViewSample / ZappierRentalView
602 car.created New Car ZappierCarViewSample / ZappierCarView
603 car.updated Car Updated ZappierCarViewSample / ZappierCarView
1257 car.deleted Car Deleted ZappierCarViewSample / ZappierCarView
951 rental.invoice.created New Rental Invoice ZappierInvoiceViewSample / ZappierInvoiceView
952 rental.invoice.updated Rental Invoice Updated ZappierInvoiceViewSample / ZappierInvoiceView
954 rental.invoice.deleted Rental Invoice Deleted ZappierInvoiceViewSample / ZappierInvoiceView
4001 color.created New Color ZappierColorViewSample / ZappierColorView
4002 color.updated Color Updated ZappierColorViewSample / ZappierColorView
4003 color.deleted Color Deleted ZappierColorViewSample / ZappierColorView