Mutations

Mutations

addCarToFleet

Unstable Fleet features are in active development and may change without warning

Returns: ID!

Requires permission: fleets:manage

Argument Type Description
input AddCarToFleetInput!
Mutation
mutation AddCarToFleet($input: AddCarToFleetInput!) {
  addCarToFleet(input: $input)
}
Variables
{
  "input": {
    "fleetId": "def456",
    "plate": "example",
    "state": "example"
  }
}
Response
{
  "data": {
    "addCarToFleet": "abc123"
  }
}

addCarToMembership

Returns: MembershipCar!

Requires permission: subscriptions:manage

Argument Type Description
input AddCarToMembershipInput!
Mutation
mutation AddCarToMembership($input: AddCarToMembershipInput!) {
  addCarToMembership(input: $input) {
    id
    createdAt
    nickname
    removingAt
    car {
      id
      bodyType
      color
      createdAt
    }
  }
}
Variables
{
  "input": {
    "membershipId": "def456",
    "plate": "example",
    "state": "example",
    "targetPriceId": "ghi789"
  }
}
Response
{
  "data": {
    "addCarToMembership": {
      "id": "abc123",
      "createdAt": "2026-01-15T14:30:00.000Z",
      "nickname": "example",
      "removingAt": "2026-01-15T14:30:00.000Z",
      "car": {
        "id": "abc123",
        "bodyType": "example",
        "color": "example",
        "createdAt": "2026-01-15T14:30:00.000Z"
      }
    }
  }
}

addCarToOwnerPlan

Add a car to an owner plan

Returns: OwnerCar!

Requires permission: owner-plans:manage

Argument Type Description
input AddCarToOwnerPlanInput!
Mutation
mutation AddCarToOwnerPlan($input: AddCarToOwnerPlanInput!) {
  addCarToOwnerPlan(input: $input) {
    id
    createdAt
    nickname
    plate
    state
    updatedAt
  }
}
Variables
{
  "input": {
    "ownerPlanId": "def456",
    "plate": "example",
    "state": "example"
  }
}
Response
{
  "data": {
    "addCarToOwnerPlan": {
      "id": "abc123",
      "createdAt": "2026-01-15T14:30:00.000Z",
      "nickname": "example",
      "plate": "example",
      "state": "example",
      "updatedAt": "2026-01-15T14:30:00.000Z"
    }
  }
}

archiveNote

Returns: Note!

Argument Type Description
id ID!
Mutation
mutation ArchiveNote($id: ID!) {
  archiveNote(id: $id) {
    id
    archivedAt
    createdAt
    customerId
    note
    updatedAt
    archivedBy {
      id
      createdAt
      externalId
      isActive
    }
    createdBy {
      id
      createdAt
      externalId
      isActive
    }
  }
}
Variables
{
  "id": "abc123"
}
Response
{
  "data": {
    "archiveNote": {
      "id": "abc123",
      "archivedAt": "2026-01-15T14:30:00.000Z",
      "createdAt": "2026-01-15T14:30:00.000Z",
      "customerId": "def456",
      "note": "example",
      "updatedAt": "2026-01-15T14:30:00.000Z",
      "archivedBy": {
        "id": "abc123",
        "createdAt": "2026-01-15T14:30:00.000Z",
        "externalId": "ghi789",
        "isActive": true
      },
      "createdBy": {
        "id": "abc123",
        "createdAt": "2026-01-15T14:30:00.000Z",
        "externalId": "ghi789",
        "isActive": true
      }
    }
  }
}

cancelCarRemoval

Returns: MembershipCar!

Requires permission: subscriptions:manage

Argument Type Description
input CancelCarRemovalInput!
Mutation
mutation CancelCarRemoval($input: CancelCarRemovalInput!) {
  cancelCarRemoval(input: $input) {
    id
    createdAt
    nickname
    removingAt
    car {
      id
      bodyType
      color
      createdAt
    }
  }
}
Variables
{
  "input": {
    "carId": "def456",
    "membershipId": "ghi789",
    "targetPriceId": "jkl012"
  }
}
Response
{
  "data": {
    "cancelCarRemoval": {
      "id": "abc123",
      "createdAt": "2026-01-15T14:30:00.000Z",
      "nickname": "example",
      "removingAt": "2026-01-15T14:30:00.000Z",
      "car": {
        "id": "abc123",
        "bodyType": "example",
        "color": "example",
        "createdAt": "2026-01-15T14:30:00.000Z"
      }
    }
  }
}

cancelCarRemovalFromFleet

Unstable Fleet features are in active development and may change without warning

Returns: ID!

Requires permission: fleets:manage

Argument Type Description
input CancelCarRemovalFromFleetInput!
Mutation
mutation CancelCarRemovalFromFleet($input: CancelCarRemovalFromFleetInput!) {
  cancelCarRemovalFromFleet(input: $input)
}
Variables
{
  "input": {
    "carId": "def456",
    "fleetId": "ghi789"
  }
}
Response
{
  "data": {
    "cancelCarRemovalFromFleet": "abc123"
  }
}

cancelFleet

Unstable Fleet features are in active development and may change without warning

Returns: ID!

Requires permission: fleets:manage

Argument Type Description
input CancelFleetInput!
Mutation
mutation CancelFleet($input: CancelFleetInput!) {
  cancelFleet(input: $input)
}
Variables
{
  "input": {
    "cancelType": "END_OF_PERIOD",
    "id": "def456"
  }
}
Response
{
  "data": {
    "cancelFleet": "abc123"
  }
}

cancelSubscription

Schedule cancellation of a RollerUp subscription at the end of the current billing period.
Cars stay linked and can wash until the period ends.

Returns: RollerupSubscription!

Requires permission: subscriptions:manage

Argument Type Description
input CancelSubscriptionInput!
Mutation
mutation CancelSubscription($input: CancelSubscriptionInput!) {
  cancelSubscription(input: $input) {
    id
    billingCustomerId
    billingFrequency
    billingSubscriptionId
    cancelAt
    cancelledAt
    createdAt
    currentPeriodEnd
    customer {
      id
      city
      country
      createdAt
    }
    defaultPaymentMethod {
      id
      cardBrand
      cardLast4
      createdAt
    }
    location {
      id
      cashEnabled
      city
      companyId
    }
  }
}
Variables
{
  "input": {
    "cancellationReasonId": "abc123",
    "subscriptionId": "def456"
  }
}
Response
{
  "data": {
    "cancelSubscription": {
      "id": "abc123",
      "billingCustomerId": "def456",
      "billingFrequency": "example",
      "billingSubscriptionId": "ghi789",
      "cancelAt": "2026-01-15T14:30:00.000Z",
      "cancelledAt": "2026-01-15T14:30:00.000Z",
      "createdAt": "2026-01-15T14:30:00.000Z",
      "currentPeriodEnd": "2026-01-15T14:30:00.000Z",
      "customer": {
        "id": "abc123",
        "city": "example",
        "country": "example",
        "createdAt": "2026-01-15T14:30:00.000Z"
      },
      "defaultPaymentMethod": {
        "id": "abc123",
        "cardBrand": "example",
        "cardLast4": "example",
        "createdAt": "2026-01-15T14:30:00.000Z"
      },
      "location": {
        "id": "abc123",
        "cashEnabled": true,
        "city": "example",
        "companyId": "jkl012"
      }
    }
  }
}

createDiscount

Create a new discount. Either amountOff or percentOff must be specified, but not both

Returns: Discount!

Requires permission: discounts:manage

Argument Type Description
input CreateDiscountInput!
Mutation
mutation CreateDiscount($input: CreateDiscountInput!) {
  createDiscount(input: $input) {
    id
    amountOff
    createdAt
    duration
    durationInMonths
    maxRedemptions
    name
    percentOff
    availabilitySchedule {
      durationMinutes
      endDate
      rrule
      startDate
    }
  }
}
Variables
{
  "input": {
    "duration": "FOREVER",
    "name": "example",
    "amountOff": 1
  }
}
Response
{
  "data": {
    "createDiscount": {
      "id": "abc123",
      "amountOff": 1,
      "createdAt": "2026-01-15T14:30:00.000Z",
      "duration": "FOREVER",
      "durationInMonths": 1,
      "maxRedemptions": 1,
      "name": "example",
      "percentOff": 1,
      "availabilitySchedule": {
        "durationMinutes": 1,
        "endDate": "2026-01-15T14:30:00.000Z",
        "rrule": "FREQ=MONTHLY;BYMONTHDAY=1",
        "startDate": "2026-01-15T14:30:00.000Z"
      }
    }
  }
}

createFleet

Unstable Fleet features are in active development and may change without warning

Returns: FleetInvitationPayload!

Requires permission: fleets:manage

Argument Type Description
input CreateFleetInput!
Mutation
mutation CreateFleet($input: CreateFleetInput!) {
  createFleet(input: $input) {
    code
    fleet {
      id
      businessName
      city
      contactName
    }
  }
}
Variables
{
  "input": {
    "businessName": "example",
    "email": "jane@example.com",
    "locationId": "def456",
    "phone": "+15555550123",
    "price": {
      "amount": 1,
      "tiers": [
        {
          "fromQuantity": 1,
          "unitAmount": 1
        }
      ]
    },
    "productId": "ghi789"
  }
}
Response
{
  "data": {
    "createFleet": {
      "code": "example",
      "fleet": {
        "id": "abc123",
        "businessName": "example",
        "city": "example",
        "contactName": "example"
      }
    }
  }
}

createNote

Returns: Note!

Argument Type Description
input CreateNoteInput!
Mutation
mutation CreateNote($input: CreateNoteInput!) {
  createNote(input: $input) {
    id
    archivedAt
    createdAt
    customerId
    note
    updatedAt
    archivedBy {
      id
      createdAt
      externalId
      isActive
    }
    createdBy {
      id
      createdAt
      externalId
      isActive
    }
  }
}
Variables
{
  "input": {
    "customerId": "def456",
    "note": "example"
  }
}
Response
{
  "data": {
    "createNote": {
      "id": "abc123",
      "archivedAt": "2026-01-15T14:30:00.000Z",
      "createdAt": "2026-01-15T14:30:00.000Z",
      "customerId": "def456",
      "note": "example",
      "updatedAt": "2026-01-15T14:30:00.000Z",
      "archivedBy": {
        "id": "abc123",
        "createdAt": "2026-01-15T14:30:00.000Z",
        "externalId": "ghi789",
        "isActive": true
      },
      "createdBy": {
        "id": "abc123",
        "createdAt": "2026-01-15T14:30:00.000Z",
        "externalId": "ghi789",
        "isActive": true
      }
    }
  }
}

createOwnerPlan

Create a new owner plan

Returns: OwnerPlan!

Requires permission: owner-plans:manage

Argument Type Description
input CreateOwnerPlanInput!
Mutation
mutation CreateOwnerPlan($input: CreateOwnerPlanInput!) {
  createOwnerPlan(input: $input) {
    id
    city
    createdAt
    description
    email
    expiresAt
    name
    phone
    cars {
      id
      createdAt
      nickname
      plate
    }
    washPackage {
      id
      createdAt
      description
      externalId
    }
  }
}
Variables
{
  "input": {
    "name": "example",
    "washPackageId": "ghi789"
  }
}
Response
{
  "data": {
    "createOwnerPlan": {
      "id": "abc123",
      "city": "example",
      "createdAt": "2026-01-15T14:30:00.000Z",
      "description": "example",
      "email": "jane@example.com",
      "expiresAt": "2026-01-15T14:30:00.000Z",
      "name": "example",
      "phone": "example",
      "cars": [
        {
          "id": "abc123",
          "createdAt": "2026-01-15T14:30:00.000Z",
          "nickname": "example",
          "plate": "example"
        }
      ],
      "washPackage": {
        "id": "abc123",
        "createdAt": "2026-01-15T14:30:00.000Z",
        "description": "example",
        "externalId": "def456"
      }
    }
  }
}

createPumpWashCode

Create a pump wash code from a controller/PLC event

Returns: PumpWashCode!

Argument Type Description
input CreatePumpWashCodeInput!
Mutation
mutation CreatePumpWashCode($input: CreatePumpWashCodeInput!) {
  createPumpWashCode(input: $input) {
    id
    activatedAt
    code
    createdAt
    expiration
    locationId
    pumpWashControllerId
    pumpWashPackageId
    pumpWashPackage {
      id
      packageNumber
      washPackageId
    }
  }
}
Variables
{
  "input": {
    "code": "example",
    "controllerId": "def456",
    "packageNumber": 1
  }
}
Response
{
  "data": {
    "createPumpWashCode": {
      "id": "abc123",
      "activatedAt": "2026-01-15T14:30:00.000Z",
      "code": "example",
      "createdAt": "2026-01-15T14:30:00.000Z",
      "expiration": "2026-01-15T14:30:00.000Z",
      "locationId": "def456",
      "pumpWashControllerId": "ghi789",
      "pumpWashPackageId": "jkl012",
      "pumpWashPackage": {
        "id": "abc123",
        "packageNumber": 1,
        "washPackageId": "abc123"
      }
    }
  }
}

createUser

Create a new user. Requires ‘users:manage’ permission

Returns: MutateUserResponse!

Requires permission: users:manage

Argument Type Description
input CreateUserInput! User creation parameters
Mutation
mutation CreateUser($input: CreateUserInput!) {
  createUser(input: $input) {
    tempPassword
    user {
      id
      createdAt
      email
      externalId
    }
  }
}
Variables
{
  "input": {
    "groupIds": [
      "ghi789"
    ],
    "name": "example"
  }
}
Response
{
  "data": {
    "createUser": {
      "tempPassword": "example",
      "user": {
        "id": "abc123",
        "createdAt": "2026-01-15T14:30:00.000Z",
        "email": "jane@example.com",
        "externalId": "def456"
      }
    }
  }
}

createWashPackage

Create a new Wash package. Requires the ‘wash-packages:manage’ permission

Returns: WashPackage!

Requires permission: wash-packages:manage

Argument Type Description
input CreateWashPackageInput!
Mutation
mutation CreateWashPackage($input: CreateWashPackageInput!) {
  createWashPackage(input: $input) {
    id
    createdAt
    description
    externalId
    includesInterior
    name
    updatedAt
  }
}
Variables
{
  "input": {
    "name": "example"
  }
}
Response
{
  "data": {
    "createWashPackage": {
      "id": "abc123",
      "createdAt": "2026-01-15T14:30:00.000Z",
      "description": "example",
      "externalId": "def456",
      "includesInterior": true,
      "name": "example",
      "updatedAt": "2026-01-15T14:30:00.000Z"
    }
  }
}

deactivateUser

Deactivate a user account, preventing them from logging in. Requires ‘users:manage’ permission

Returns: User!

Requires permission: users:manage

Argument Type Description
id ID! The id of the user to deactivate
Mutation
mutation DeactivateUser($id: ID!) {
  deactivateUser(id: $id) {
    id
    createdAt
    email
    externalId
    isActive
    name
    permissions
    phone
    company {
      id
      features
      maxCarsPerFamilyMembership
      name
    }
    groups {
      id
      description
      isAdmin
      name
    }
  }
}
Variables
{
  "id": "abc123"
}
Response
{
  "data": {
    "deactivateUser": {
      "id": "abc123",
      "createdAt": "2026-01-15T14:30:00.000Z",
      "email": "jane@example.com",
      "externalId": "def456",
      "isActive": true,
      "name": "example",
      "permissions": [
        "example"
      ],
      "phone": "+15555550123",
      "company": {
        "id": "abc123",
        "features": [
          "example"
        ],
        "maxCarsPerFamilyMembership": 1,
        "name": "example"
      },
      "groups": [
        {
          "id": "abc123",
          "description": "example",
          "isAdmin": true,
          "name": "example"
        }
      ]
    }
  }
}

deleteOwnerPlan

Delete an owner plan (soft delete)

Returns: ID!

Requires permission: owner-plans:manage

Argument Type Description
id ID!
Mutation
mutation DeleteOwnerPlan($id: ID!) {
  deleteOwnerPlan(id: $id)
}
Variables
{
  "id": "def456"
}
Response
{
  "data": {
    "deleteOwnerPlan": "abc123"
  }
}

mergeCars

Merge the source car into the target car, moving its history and filling in
any missing plate, state, or RFID. The source car is removed. This cannot be undone.

Returns: MergeCarsResult!

Requires permission: cars:manage

Argument Type Description
input MergeCarsInput!
Mutation
mutation MergeCars($input: MergeCarsInput!) {
  mergeCars(input: $input) {
    mergedCarId
  }
}
Variables
{
  "input": {
    "sourceCarId": "def456",
    "targetCarId": "ghi789"
  }
}
Response
{
  "data": {
    "mergeCars": {
      "mergedCarId": "abc123"
    }
  }
}

mergeCustomers

Merge one RollerUp customer into another. The source customer’s subscriptions,
paid invoices, and stripe customers are re-pointed to the target; any null fields
on the target are backfilled from the source; the source row is then hard-deleted.
A snapshot of the source row is preserved in the customer_merges audit table.
Requires the ‘customers:manage’ permission.

Returns: RollerupCustomer!

Requires permission: customers:manage

Argument Type Description
input MergeCustomersInput!
Mutation
mutation MergeCustomers($input: MergeCustomersInput!) {
  mergeCustomers(input: $input) {
    id
    city
    country
    createdAt
    email
    externalBillingId
    isActiveMember
    isExternallyManaged
    notes {
      id
      archivedAt
      createdAt
      customerId
    }
    subscriptions {
      id
      billingCustomerId
      billingFrequency
      billingSubscriptionId
    }
  }
}
Variables
{
  "input": {
    "sourceId": "def456",
    "targetId": "ghi789"
  }
}
Response
{
  "data": {
    "mergeCustomers": {
      "id": "abc123",
      "city": "example",
      "country": "example",
      "createdAt": "2026-01-15T14:30:00.000Z",
      "email": "jane@example.com",
      "externalBillingId": "def456",
      "isActiveMember": true,
      "isExternallyManaged": true,
      "notes": [
        {
          "id": "abc123",
          "archivedAt": "2026-01-15T14:30:00.000Z",
          "createdAt": "2026-01-15T14:30:00.000Z",
          "customerId": "ghi789"
        }
      ],
      "subscriptions": [
        {
          "id": "abc123",
          "billingCustomerId": "jkl012",
          "billingFrequency": "example",
          "billingSubscriptionId": "abc123"
        }
      ]
    }
  }
}

reactivateUser

Reactivate a previously deactivated user account, restoring their ability to log in. Requires ‘users:manage’ permission

Returns: User!

Requires permission: users:manage

Argument Type Description
id ID! The id of the user to reactivate
Mutation
mutation ReactivateUser($id: ID!) {
  reactivateUser(id: $id) {
    id
    createdAt
    email
    externalId
    isActive
    name
    permissions
    phone
    company {
      id
      features
      maxCarsPerFamilyMembership
      name
    }
    groups {
      id
      description
      isAdmin
      name
    }
  }
}
Variables
{
  "id": "abc123"
}
Response
{
  "data": {
    "reactivateUser": {
      "id": "abc123",
      "createdAt": "2026-01-15T14:30:00.000Z",
      "email": "jane@example.com",
      "externalId": "def456",
      "isActive": true,
      "name": "example",
      "permissions": [
        "example"
      ],
      "phone": "+15555550123",
      "company": {
        "id": "abc123",
        "features": [
          "example"
        ],
        "maxCarsPerFamilyMembership": 1,
        "name": "example"
      },
      "groups": [
        {
          "id": "abc123",
          "description": "example",
          "isAdmin": true,
          "name": "example"
        }
      ]
    }
  }
}

redeemPumpWashCode

Redeem a pump wash code for a company/location

Returns: PumpWashCode!

Argument Type Description
input RedeemPumpWashCodeInput!
Mutation
mutation RedeemPumpWashCode($input: RedeemPumpWashCodeInput!) {
  redeemPumpWashCode(input: $input) {
    id
    activatedAt
    code
    createdAt
    expiration
    locationId
    pumpWashControllerId
    pumpWashPackageId
    pumpWashPackage {
      id
      packageNumber
      washPackageId
    }
  }
}
Variables
{
  "input": {
    "code": "example"
  }
}
Response
{
  "data": {
    "redeemPumpWashCode": {
      "id": "abc123",
      "activatedAt": "2026-01-15T14:30:00.000Z",
      "code": "example",
      "createdAt": "2026-01-15T14:30:00.000Z",
      "expiration": "2026-01-15T14:30:00.000Z",
      "locationId": "def456",
      "pumpWashControllerId": "ghi789",
      "pumpWashPackageId": "jkl012",
      "pumpWashPackage": {
        "id": "abc123",
        "packageNumber": 1,
        "washPackageId": "abc123"
      }
    }
  }
}

removeCarFromFleet

Unstable Fleet features are in active development and may change without warning

Returns: ID!

Requires permission: fleets:manage

Argument Type Description
input RemoveCarFromFleetInput!
Mutation
mutation RemoveCarFromFleet($input: RemoveCarFromFleetInput!) {
  removeCarFromFleet(input: $input)
}
Variables
{
  "input": {
    "carId": "def456",
    "fleetId": "ghi789"
  }
}
Response
{
  "data": {
    "removeCarFromFleet": "abc123"
  }
}

removeCarFromMembership

Returns: MembershipCar!

Requires permission: subscriptions:manage

Argument Type Description
input RemoveCarFromMembershipInput!
Mutation
mutation RemoveCarFromMembership($input: RemoveCarFromMembershipInput!) {
  removeCarFromMembership(input: $input) {
    id
    createdAt
    nickname
    removingAt
    car {
      id
      bodyType
      color
      createdAt
    }
  }
}
Variables
{
  "input": {
    "carId": "def456",
    "membershipId": "ghi789",
    "targetPriceId": "jkl012"
  }
}
Response
{
  "data": {
    "removeCarFromMembership": {
      "id": "abc123",
      "createdAt": "2026-01-15T14:30:00.000Z",
      "nickname": "example",
      "removingAt": "2026-01-15T14:30:00.000Z",
      "car": {
        "id": "abc123",
        "bodyType": "example",
        "color": "example",
        "createdAt": "2026-01-15T14:30:00.000Z"
      }
    }
  }
}

removeCarFromOwnerPlan

Remove a car from an owner plan

Returns: ID!

Requires permission: owner-plans:manage

Argument Type Description
id ID!
Mutation
mutation RemoveCarFromOwnerPlan($id: ID!) {
  removeCarFromOwnerPlan(id: $id)
}
Variables
{
  "id": "def456"
}
Response
{
  "data": {
    "removeCarFromOwnerPlan": "abc123"
  }
}

updateCustomer

Update a RollerUp customer’s name, email, or phone. Only fields provided in the input
are updated. If the new email matches another customer in the same company, the
mutation fails with a CUSTOMER_EMAIL_CONFLICT error whose extensions include the
conflicting customer id so the client can offer a merge.

Returns: RollerupCustomer!

Requires permission: customers:manage

Argument Type Description
input UpdateCustomerInput!
Mutation
mutation UpdateCustomer($input: UpdateCustomerInput!) {
  updateCustomer(input: $input) {
    id
    city
    country
    createdAt
    email
    externalBillingId
    isActiveMember
    isExternallyManaged
    notes {
      id
      archivedAt
      createdAt
      customerId
    }
    subscriptions {
      id
      billingCustomerId
      billingFrequency
      billingSubscriptionId
    }
  }
}
Variables
{
  "input": {
    "id": "abc123"
  }
}
Response
{
  "data": {
    "updateCustomer": {
      "id": "abc123",
      "city": "example",
      "country": "example",
      "createdAt": "2026-01-15T14:30:00.000Z",
      "email": "jane@example.com",
      "externalBillingId": "def456",
      "isActiveMember": true,
      "isExternallyManaged": true,
      "notes": [
        {
          "id": "abc123",
          "archivedAt": "2026-01-15T14:30:00.000Z",
          "createdAt": "2026-01-15T14:30:00.000Z",
          "customerId": "ghi789"
        }
      ],
      "subscriptions": [
        {
          "id": "abc123",
          "billingCustomerId": "jkl012",
          "billingFrequency": "example",
          "billingSubscriptionId": "abc123"
        }
      ]
    }
  }
}

updateFleet

Unstable Fleet features are in active development and may change without warning

Returns: Fleet!

Requires permission: fleets:manage

Argument Type Description
input UpdateFleetInput!
Mutation
mutation UpdateFleet($input: UpdateFleetInput!) {
  updateFleet(input: $input) {
    id
    businessName
    city
    contactName
    country
    createdAt
    customerId
    description
    company {
      id
      features
      maxCarsPerFamilyMembership
      name
    }
    createdBy {
      id
      createdAt
      externalId
      isActive
    }
    customer {
      id
      city
      country
      createdAt
    }
  }
}
Variables
{
  "input": {
    "id": "abc123"
  }
}
Response
{
  "data": {
    "updateFleet": {
      "id": "abc123",
      "businessName": "example",
      "city": "example",
      "contactName": "example",
      "country": "example",
      "createdAt": "2026-01-15T14:30:00.000Z",
      "customerId": "def456",
      "description": "example",
      "company": {
        "id": "abc123",
        "features": [
          "example"
        ],
        "maxCarsPerFamilyMembership": 1,
        "name": "example"
      },
      "createdBy": {
        "id": "abc123",
        "createdAt": "2026-01-15T14:30:00.000Z",
        "externalId": "ghi789",
        "isActive": true
      },
      "customer": {
        "id": "abc123",
        "city": "example",
        "country": "example",
        "createdAt": "2026-01-15T14:30:00.000Z"
      }
    }
  }
}

updateOwnerPlan

Update an existing owner plan

Returns: OwnerPlan!

Requires permission: owner-plans:manage

Argument Type Description
input UpdateOwnerPlanInput!
Mutation
mutation UpdateOwnerPlan($input: UpdateOwnerPlanInput!) {
  updateOwnerPlan(input: $input) {
    id
    city
    createdAt
    description
    email
    expiresAt
    name
    phone
    cars {
      id
      createdAt
      nickname
      plate
    }
    washPackage {
      id
      createdAt
      description
      externalId
    }
  }
}
Variables
{
  "input": {
    "id": "abc123"
  }
}
Response
{
  "data": {
    "updateOwnerPlan": {
      "id": "abc123",
      "city": "example",
      "createdAt": "2026-01-15T14:30:00.000Z",
      "description": "example",
      "email": "jane@example.com",
      "expiresAt": "2026-01-15T14:30:00.000Z",
      "name": "example",
      "phone": "example",
      "cars": [
        {
          "id": "abc123",
          "createdAt": "2026-01-15T14:30:00.000Z",
          "nickname": "example",
          "plate": "example"
        }
      ],
      "washPackage": {
        "id": "abc123",
        "createdAt": "2026-01-15T14:30:00.000Z",
        "description": "example",
        "externalId": "def456"
      }
    }
  }
}

updateOwnerPlanCar

Update a car on an owner plan (e.g., change nickname)

Returns: OwnerCar!

Requires permission: owner-plans:manage

Argument Type Description
input UpdateOwnerPlanCarInput!
Mutation
mutation UpdateOwnerPlanCar($input: UpdateOwnerPlanCarInput!) {
  updateOwnerPlanCar(input: $input) {
    id
    createdAt
    nickname
    plate
    state
    updatedAt
  }
}
Variables
{
  "input": {
    "id": "abc123"
  }
}
Response
{
  "data": {
    "updateOwnerPlanCar": {
      "id": "abc123",
      "createdAt": "2026-01-15T14:30:00.000Z",
      "nickname": "example",
      "plate": "example",
      "state": "example",
      "updatedAt": "2026-01-15T14:30:00.000Z"
    }
  }
}

updateUser

Update an existing user. Requires ‘users:manage’ permission

Returns: MutateUserResponse!

Requires permission: users:manage

Argument Type Description
input UpdateUserInput! User update parameters
Mutation
mutation UpdateUser($input: UpdateUserInput!) {
  updateUser(input: $input) {
    tempPassword
    user {
      id
      createdAt
      email
      externalId
    }
  }
}
Variables
{
  "input": {
    "id": "abc123"
  }
}
Response
{
  "data": {
    "updateUser": {
      "tempPassword": "example",
      "user": {
        "id": "abc123",
        "createdAt": "2026-01-15T14:30:00.000Z",
        "email": "jane@example.com",
        "externalId": "def456"
      }
    }
  }
}

updateWashPackage

Update an existing Wash package. Requires the ‘wash-packages:manage’ permission

Returns: WashPackage!

Requires permission: wash-packages:manage

Argument Type Description
input UpdateWashPackageInput!
Mutation
mutation UpdateWashPackage($input: UpdateWashPackageInput!) {
  updateWashPackage(input: $input) {
    id
    createdAt
    description
    externalId
    includesInterior
    name
    updatedAt
  }
}
Variables
{
  "input": {
    "id": "abc123"
  }
}
Response
{
  "data": {
    "updateWashPackage": {
      "id": "abc123",
      "createdAt": "2026-01-15T14:30:00.000Z",
      "description": "example",
      "externalId": "def456",
      "includesInterior": true,
      "name": "example",
      "updatedAt": "2026-01-15T14:30:00.000Z"
    }
  }
}