Data feed tables
Tables
Each table’s columns match a type in the API reference, with nested objects sent as their ID (for example, a price’s product arrives as productId). Lists aren’t included.
“or null” is for live rows: on a deleted row, every column but the metadata is null.
cards
Your customers’ cards, saved online or tapped on a reader. A paid invoice’s cardId points at one.
The Card type in the GraphQL API, plus the metadata columns.
| Column | Type | Description |
|---|---|---|
_row_id |
string | The row’s ID, the same as id, but also set on deleted rows, where id is null. Upsert and delete on it. |
_deleted |
boolean | true when the row was deleted. Only _row_id and _deleted are set on a deleted row; every other column is null. |
brand |
string | The brand of the card |
expMonth |
integer | The expiration month of the card |
expYear |
integer | The expiration year of the card |
id |
string | |
last4 |
string | The last 4 digits of the card. String to match Stripe’s format |
cars
The Car type in the GraphQL API, plus the metadata columns.
| Column | Type | Description |
|---|---|---|
_row_id |
string | The row’s ID, the same as id, but also set on deleted rows, where id is null. Upsert and delete on it. |
_deleted |
boolean | true when the row was deleted. Only _row_id and _deleted are set on a deleted row; every other column is null. |
createdAt |
timestamp (UTC) | Time when this car was created |
id |
string | |
isMember |
boolean | Whether the car belongs to a member or not |
membershipId |
string or null | The membership ID associated with the car |
nickname |
string or null | The nickname associated with the car |
plate |
string | The plate number of the car |
rfidTag |
string or null | The RFID tag, if there is one, on the car |
state |
string | The state of the car |
updatedAt |
timestamp (UTC) | Time when this car was last updated |
customers
The RollerupCustomer type in the GraphQL API, plus the metadata columns.
| Column | Type | Description |
|---|---|---|
_row_id |
string | The row’s ID, the same as id, but also set on deleted rows, where id is null. Upsert and delete on it. |
_deleted |
boolean | true when the row was deleted. Only _row_id and _deleted are set on a deleted row; every other column is null. |
city |
string or null | City |
country |
string or null | Country |
createdAt |
timestamp (UTC) | Timestamp when the customer was created |
email |
string or null | Customer’s email address |
externalBillingId |
string or null | for externally managed customers only, the id in the external system |
id |
string | Unique identifier |
isExternallyManaged |
boolean | Whether the customer is managed by an external billing system (e.g. drb). Externally-managed customers cannot be edited via the API. |
name |
string or null | Customer’s full name |
phone |
string or null | Customer’s phone number in E.164 format |
state |
string or null | State |
street1 |
string or null | Street address line 1 |
street2 |
string or null | Street address line 2 |
updatedAt |
timestamp (UTC) | Timestamp when the customer was last updated |
zip |
string or null | ZIP/postal code |
employees
The Employee type in the GraphQL API, plus the metadata columns.
| Column | Type | Description |
|---|---|---|
_row_id |
string | The row’s ID, the same as id, but also set on deleted rows, where id is null. Upsert and delete on it. |
_deleted |
boolean | true when the row was deleted. Only _row_id and _deleted are set on a deleted row; every other column is null. |
carId |
string or null | The car assigned to the employee. The car object’s ID. |
createdAt |
timestamp (UTC) | Timestamp when the employee was created |
externalId |
string or null | An id from an system external to RollerUp for reference purposes |
id |
string | Unique identifier for the employee |
isActive |
boolean | Whether or not the employee is still active in RollerUp |
name |
string or null | Name of the employee |
updatedAt |
timestamp (UTC) | Timestamp when the employee was last updated |
locations
The SimpleLocation type in the GraphQL API, plus the metadata columns.
| Column | Type | Description |
|---|---|---|
_row_id |
string | The row’s ID, the same as id, but also set on deleted rows, where id is null. Upsert and delete on it. |
_deleted |
boolean | true when the row was deleted. Only _row_id and _deleted are set on a deleted row; every other column is null. |
city |
string or null | City |
createdAt |
timestamp (UTC) | Timestamp when the location was created |
externalId |
string or null | External system identifier for the location |
id |
string | Unique identifier for the location |
isVirtual |
boolean | Whether this is a virtual location |
name |
string | Display name of the location |
shortName |
string or null | Short display name of the location |
state |
string or null | State or province |
street |
string or null | Street address |
timezone |
string | Location timezone |
updatedAt |
timestamp (UTC) | Timestamp when the location was last updated |
zip |
string or null | ZIP or postal code |
membership_cars
The MembershipCar type in the GraphQL API, plus the metadata columns.
| Column | Type | Description |
|---|---|---|
_row_id |
string | The row’s ID, the same as id, but also set on deleted rows, where id is null. Upsert and delete on it. |
_deleted |
boolean | true when the row was deleted. Only _row_id and _deleted are set on a deleted row; every other column is null. |
carId |
string | The vehicle. The car object’s ID. |
createdAt |
timestamp (UTC) | When this link was created |
id |
string | |
membershipId |
string or null | The membership this car is on |
nickname |
string or null | Optional nickname for this vehicle on the membership |
removingAt |
timestamp (UTC) or null | When the car is scheduled to be removed (null if not scheduled) |
memberships
The Membership type in the GraphQL API, plus the metadata columns.
| Column | Type | Description |
|---|---|---|
_row_id |
string | The row’s ID, the same as id, but also set on deleted rows, where id is null. Upsert and delete on it. |
_deleted |
boolean | true when the row was deleted. Only _row_id and _deleted are set on a deleted row; every other column is null. |
active |
boolean | Whether this membership is active |
carLimit |
integer | Maximum number of cars allowed on this membership |
createdAt |
timestamp (UTC) | Timestamp when the membership was created |
id |
string | Membership ID |
isExternallyManaged |
boolean | Whether the membership is managed by an external billing system (e.g. drb). Externally-managed memberships cannot be edited via the API. |
isFleet |
boolean | Whether this membership uses fleet-style billing / management |
priceId |
string | Price ID |
subscriptionId |
string or null | The subscription this membership belongs to |
paid_invoices
The PaidInvoice type in the GraphQL API, plus the metadata columns.
| Column | Type | Description |
|---|---|---|
_row_id |
string | The row’s ID, the same as id, but also set on deleted rows, where id is null. Upsert and delete on it. |
_deleted |
boolean | true when the row was deleted. Only _row_id and _deleted are set on a deleted row; every other column is null. |
amountAvailableToRefund |
integer | The amount available to refund in cents (total minus already-refunded credit notes) |
billingReason |
string or null | The billing reason for the paid invoice |
cardId |
string or null | The card used to make the payment, if any. The card object’s ID. |
createdAt |
timestamp (UTC) | The date and time the paid invoice was created |
customerId |
string or null | The customer who was sold to. The customer object’s ID. |
employeeId |
string or null | The employee who made the sale. The employee object’s ID. |
id |
string | |
isRecharge |
boolean | Whether this invoice is a recharge (subscription_cycle billing reason) |
isUpdate |
boolean | Whether this invoice is an update (subscription_update billing reason) |
locationId |
string or null | The location that the paid invoice occurred in. The location object’s ID. |
paymentMethodType |
string: BANK_ACCOUNT, CARD, CASH, OTHER or null |
How the invoice was paid, or null when it isn’t known |
stripeChargeId |
string or null | The charge ID associated with the paid invoice |
stripeInvoiceId |
string or null | The Stripe invoice ID associated with the paid invoice |
subscriptionId |
string or null | The RollerUp subscription ID associated with this paid invoice |
total |
integer | The total amount of the paid invoice in cents |
visitId |
string or null | The visit that the paid invoice occurred in. The visit object’s ID. |
prices
The Price type in the GraphQL API, plus the metadata columns.
| Column | Type | Description |
|---|---|---|
_row_id |
string | The row’s ID, the same as id, but also set on deleted rows, where id is null. Upsert and delete on it. |
_deleted |
boolean | true when the row was deleted. Only _row_id and _deleted are set on a deleted row; every other column is null. |
amount |
integer | Price amount in cents (e.g., 1999 = $19.99) |
archivedReason |
string: CASCADE, SYSTEM, USER or null |
Why this price was archived: USER (manually by a user), SYSTEM (automatically during archive-and-replace), or null if not archived |
availableInPos |
boolean | Whether this price is currently available for selection in the POS |
availableInUnattended |
boolean | Whether this price is currently available for selection in unattended purchase flow |
availableOnline |
boolean | Whether this price is currently available for selection online |
billingFrequency |
string: MONTHLY, QUARTERLY, YEARLY or null |
Billing frequency for subscription prices (null for one-time prices) |
createdAt |
timestamp (UTC) | When this price was created |
currency |
string | Currency code (e.g., ‘USD’, ‘EUR’) |
discountId |
string or null | An (optional) promotional discount that will be applied to this price at sign-up. The discount object’s ID. |
displayName |
string or null | Operator-editable customer-facing name. When null, the UI falls back to product.name at render time. |
id |
string | Unique identifier for the price |
internalName |
string or null | Admin-only annotation. When set, shown as the primary label in admin tables with the resolved display name as the secondary label. |
isArchived |
boolean | Whether this price is archived and no longer active |
isDefault |
boolean | Whether this is a default price for the product (automatically assigned to new locations) |
name |
string | Display name for this price |
productId |
string or null | The product this price belongs to (null for v1 pricing-profile prices). Lightweight projection — full Product is available via a separate product(id:) query. The product object’s ID. |
sortOrder |
integer | Sort order for displaying the price in the POS |
trialDuration |
integer or null | Duration of the free trial period (used with trialUnits) |
trialUnits |
string: DAYS, MONTHS, WEEKS or null |
Units for the trial duration (DAYS, WEEKS, or MONTHS) |
updatedAt |
timestamp (UTC) | When this price was last updated |
washPackageId |
string or null | The wash package this price applies to: set directly on a v1 price, and from its product’s plan, retail wash or prepaid on a v2 price. Null when there isn’t one, such as for a gift card. The washPackage object’s ID. |
subscriptions
The RollerupSubscription type in the GraphQL API, plus the metadata columns.
| Column | Type | Description |
|---|---|---|
_row_id |
string | The row’s ID, the same as id, but also set on deleted rows, where id is null. Upsert and delete on it. |
_deleted |
boolean | true when the row was deleted. Only _row_id and _deleted are set on a deleted row; every other column is null. |
billingCustomerId |
string or null | Latest billing provider customer ID (e.g., Stripe ‘cus_…’) associated with this subscription |
billingFrequency |
string | Billing frequency |
billingSubscriptionId |
string or null | Latest billing provider subscription ID (e.g., Stripe ‘sub_…’) associated with this subscription |
cancelAt |
timestamp (UTC) or null | Timestamp when the subscription is scheduled to be cancelled |
cancelledAt |
timestamp (UTC) or null | Timestamp when the subscription was cancelled |
createdAt |
timestamp (UTC) | Timestamp when the subscription was created |
currentPeriodEnd |
timestamp (UTC) | Current period end |
currentPeriodStart |
timestamp (UTC) | Current period start |
customerId |
string or null | Customer ID |
endedAt |
string or null | When the subscription ended (Membership.endedAt) |
id |
string | Subscription ID |
isExternallyManaged |
boolean | Whether the subscription is managed by an external billing system (e.g. drb). Externally-managed subscriptions cannot be edited via the API. |
locationId |
string or null | Current location ID associated with this subscription |
soldAtLocationId |
string or null | Location ID where this subscription was sold |
soldById |
string or null | Employee ID who sold this subscription |
startedAt |
timestamp (UTC) or null | Timestamp when the subscription started |
status |
string | Status of this subscription |
trialEndAt |
string or null | When the trial ends (Membership.trialEndAt) |
visits
Only finished visits: completed or canceled. A visit arrives once it’s done, not at each step while it’s in the lane.
The Visit type in the GraphQL API, plus the metadata columns.
| Column | Type | Description |
|---|---|---|
_row_id |
string | The row’s ID, the same as id, but also set on deleted rows, where id is null. Upsert and delete on it. |
_deleted |
boolean | true when the row was deleted. Only _row_id and _deleted are set on a deleted row; every other column is null. |
carId |
string or null | The id of the car associated with the visit |
createdAt |
timestamp (UTC) | The timestamp when the visit was created |
employeeId |
string or null | The employee who processed the visit. The employee object’s ID. |
id |
string | The unique identifier for the visit |
isExternalMember |
boolean | Whether or not this is a member in an external system. Primarily useful during onboarding. Will always be false if visit type is not ‘member’. |
isSale |
boolean | Whether or not this visit included a membership signup or wash purchase. |
laneId |
string or null | The lane ID where the visit occurred |
locationId |
string | The id of the location where the visit occurred |
lprOverridden |
boolean or null | Whether the LPR data has been overridden |
lprPlate |
string or null | The plate as seen by LPR |
lprState |
string or null | The state as seen by LPR |
membershipId |
string or null | If this visit is a member visit, the ID of the membership |
plate |
string or null | The plate number of the vehicle |
rfidTag |
string or null | The RFID tag of the vehicle |
state |
string or null | The state of the vehicle |
status |
string | The status of the visit |
timeTotal |
double or null | The total time the visit took in seconds. |
timeWaitingForAttendant |
double or null | The time the visit spent waiting for the attendant in seconds. |
timeWaitingForGate |
double or null | The time the visit spent waiting for the gate to open in seconds. |
timeWithAttendant |
double or null | The time the visit spent with the attendant in seconds. |
updatedAt |
timestamp (UTC) | The timestamp when the visit was last updated |
visitType |
string or null | The type of visit |
washPackageId |
string or null | The ID of the wash package for the visit |
wash_packages
The WashPackage type in the GraphQL API, plus the metadata columns.
| Column | Type | Description |
|---|---|---|
_row_id |
string | The row’s ID, the same as id, but also set on deleted rows, where id is null. Upsert and delete on it. |
_deleted |
boolean | true when the row was deleted. Only _row_id and _deleted are set on a deleted row; every other column is null. |
createdAt |
timestamp (UTC) | Timestamp when the package was created |
description |
string or null | An optional detailed description of the package |
externalId |
string or null | An optional reference ID to link this RollerUp package to a system external to RollerUp |
id |
string | Unique Wash package identifier |
includesInterior |
boolean | Whether this package includes interior cleaning |
name |
string | A friendly name for the package |
updatedAt |
timestamp (UTC) | Timestamp when the package was last updated |