RentalTideRentalTideDocs
Dashboard

Customers API

Look up and manage customer records and renters

Endpoints for managing customer records, renter profiles, and pending renter approvals.

Customers

Get customer for authenticated user

GET /customer

Retrieves the customer record associated with the authenticated user

Responses

CodeDescription
200Successfully retrieved customer
401Unauthorized
404User or customer not found
500Server error

Update customer

PATCH /customer

Updates the customer record associated with the authenticated user. Handles subscription changes via Stripe.

Request body

FieldTypeRequiredDescription
namestringNo
emailstringNo
permissionsobjectNo
integrationsobjectNoIntegration settings (merged with existing)

Responses

CodeDescription
200Customer updated successfully
400No data provided or subscription change failed
401Unauthorized
404Customer not found
500Server error

Create a new customer

POST /customer

Creates a new customer record and associates it with the authenticated user. Also creates a Stripe customer.

Request body

FieldTypeRequiredDescription
namestringYes
emailstringNo
business_namestringNo
affiliateCodestringNoAffiliate/partner code for tracking conversions
permissionsobjectNo

Responses

CodeDescription
201Customer created successfully
400Customer name is required
401Unauthorized
500Server error

Create Stripe customer

POST /customer/create-stripe-customer

Creates a Stripe customer for an existing customer if one does not already exist

Responses

CodeDescription
200Stripe customer created or already exists
401Unauthorized
404Customer not found
500Server error

Attach payment method

POST /customer/payment-method

Attaches a payment method to the customer's Stripe account and sets it as default

Request body

FieldTypeRequiredDescription
paymentMethodIdstringYesStripe payment method ID

Responses

CodeDescription
200Payment method attached successfully
400Payment method ID is required
401Unauthorized
404Customer or Stripe customer not found
500Server error

Create Stripe SetupIntent

POST /customer/create-setup-intent

Creates a SetupIntent for setting up a payment method via Stripe Elements

Responses

CodeDescription
200SetupIntent created successfully
401Unauthorized
404Customer or Stripe customer not found
500Server error

Get saved payment methods

GET /customer/payment-methods

Retrieves all saved payment methods for the customer from Stripe

Responses

CodeDescription
200Successfully retrieved payment methods
401Unauthorized
404Customer or Stripe customer not found
500Server error

Get subscription details

GET /customer/subscription

Retrieves the customer's current subscription details from Stripe

Responses

CodeDescription
200Successfully retrieved subscription
401Unauthorized
404Customer not found
500Server error

Cancel subscription

POST /customer/cancel-subscription

Cancels the customer's subscription at the end of the current billing period

Responses

CodeDescription
200Subscription scheduled for cancellation
401Unauthorized
404No active subscription found
500Server error

Reactivate subscription

POST /customer/reactivate-subscription

Reactivates a subscription that was scheduled for cancellation

Responses

CodeDescription
200Subscription reactivated successfully
401Unauthorized
404No active subscription found
500Server error

Renters

Get paginated list of renters

GET /renters

Fetches renters with server-side search, filtering, sorting, and optional accounting enrichment

Parameters

NameInTypeRequiredDescription
customerIdquerystringYesThe customer ID to filter renters by
pagequeryintegerNoPage number for pagination
limitqueryintegerNoNumber of renters per page (max 100)
includeAccountingquerybooleanNoInclude accounting data (balance, debits, credits)
searchquerystringNoSearch term to filter renters by name, email, phone, or license
statusquerystringNoFilter by renter status
sortFieldquerystringNoField to sort by
sortDirectionquerystringNoSort direction

Responses

CodeDescription
200Successfully retrieved renters
400Missing required customerId parameter
401Unauthorized access
500Server error

Create or update a renter

POST /renters

Creates a new renter or updates an existing one if email and customerId match. Also creates a Stripe customer if needed.

Request body

FieldTypeRequiredDescription
firstNamestringYes
lastNamestringYes
emailstringYes
addressstringYes
customerIdstringYes
dobstringNo
waivers_signed_urlsarrayNo
id_verificationsobjectNo
transactionsarrayNo
additional_infoobjectNo
stripe_customer_idstringNo

Responses

CodeDescription
200Existing renter updated successfully
201New renter created successfully
400Missing required fields
500Server error

Export renters data

GET /renters/export

Export renters data as CSV or JSON format with optional filtering

Parameters

NameInTypeRequiredDescription
customerIdquerystringYesThe customer ID to filter renters by
formatquerystringNoExport format
includeAccountingquerybooleanNoInclude accounting data in export
searchquerystringNoSearch term to filter renters
statusquerystringNoFilter by renter status
sortFieldquerystringNoField to sort by
sortDirectionquerystringNoSort direction

Responses

CodeDescription
200Successfully exported renters data
400Invalid request parameters
401Unauthorized access
500Server error

Get search suggestions for autocomplete

GET /renters/search-suggestions

Returns suggestions based on renter names, emails, phone numbers, and license numbers

Parameters

NameInTypeRequiredDescription
customerIdquerystringYesThe customer ID to search within
queryquerystringYesSearch query (minimum 2 characters)

Responses

CodeDescription
200Successfully retrieved suggestions
400Missing required customerId parameter
401Unauthorized access
500Server error

Get a single renter by ID

GET /renters/{id}

Fetches a single renter with their accounting information

Parameters

NameInTypeRequiredDescription
idpathstringYesThe renter ID

Responses

CodeDescription
200Successfully retrieved renter
400Renter ID is required
401Unauthorized access
404Renter not found
500Server error

Update a renter

PATCH /renters/{id}

Updates renter fields. Can also append notes using add_note flag.

Parameters

NameInTypeRequiredDescription
idpathstringYesThe renter ID

Request body

FieldTypeRequiredDescription
add_notebooleanNoIf true, appends the note to the notes array
noteobjectNoNote to append (used with add_note)
firstNamestringNo
lastNamestringNo
emailstringNo
addressstringNo
statusstringNo
riskScorenumberNo
additional_infoobjectNo
transactionsarrayNoTransactions are appended to existing array

Responses

CodeDescription
200Renter updated successfully
400Invalid request or no valid fields provided
401Unauthorized access
404Renter not found
500Server error

Delete a renter

DELETE /renters/{id}

Deletes a renter from DynamoDB and also deletes the associated Stripe customer

Parameters

NameInTypeRequiredDescription
idpathstringYesThe renter ID

Responses

CodeDescription
200Renter deleted successfully
400Renter ID is required
401Unauthorized access
404Renter not found
500Server error

Attach a payment method to a renter

POST /renters/{id}/payment-method

Attaches a payment method to the renter's Stripe customer and sets it as the default

Parameters

NameInTypeRequiredDescription
idpathstringYesThe renter ID

Request body

FieldTypeRequiredDescription
payment_method_idstringYesStripe payment method ID

Responses

CodeDescription
200Payment method added successfully
400Renter ID or payment method ID is required
404Renter or Stripe customer not found
500Server error

Get renters with outstanding balances

GET /owing/renters

Fetches all renters who owe money (balance >= $1) with optional historical date filtering

Parameters

NameInTypeRequiredDescription
asOfDatequerystringNoCalculate balances as of this date (for historical reporting)

Responses

CodeDescription
200Successfully retrieved renters with outstanding balances
500Server error

Get journal entries for a renter

GET /renters/journal-entries/{id}

Fetches all non-deleted journal entries for a specific renter

Parameters

NameInTypeRequiredDescription
idpathstringYesThe renter ID

Responses

CodeDescription
200Successfully retrieved journal entries
400Renter ID is required
401Unauthorized access
404Renter not found
500Server error

Get renter's saved payment methods

GET /renters/{id}/payment-methods

Retrieves all saved payment methods (cards) for a renter from Stripe

Parameters

NameInTypeRequiredDescription
idpathstringYesRenter ID

Responses

CodeDescription
200Payment methods retrieved successfully
404Renter not found or no Stripe customer ID
500Server error

Pending Renters

Create a new waiver number

POST /pending-renters

Creates a new waiver number with a unique PIN for waiver signing

Request body

FieldTypeRequiredDescription
customerIdstringYesThe customer ID
locationIdstringNoThe location ID
firstNamestringNo
lastNamestringNo
emailstringNo
phonestringNo
dobstringNo
addressobjectNo
assignTostringNo
assetIdstringNo
transactionIdstringNo
renterIdstringNo
templateIdstringNo
rawDataobjectNo

Responses

CodeDescription
201Waiver number created successfully
400Missing required customerId
409Waiver number already exists
500Could not create waiver number

Get waiver numbers

GET /pending-renters

Retrieves waiver numbers by transactionId, customerId, or locationId

Parameters

NameInTypeRequiredDescription
transactionIdquerystringNoTransaction ID to filter by
customerIdquerystringNoCustomer ID to filter by
locationIdquerystringNoLocation ID to filter by
statusquerystringNoStatus to filter by (e.g., PENDING, COMPLETED)

Responses

CodeDescription
200Waiver numbers retrieved successfully
400transactionId, customerId, or locationId is required
500Could not fetch waiver numbers

Validate a waiver PIN

GET /pending-renters/validate

Validates a PIN and returns waiver details if valid and not expired

Parameters

NameInTypeRequiredDescription
pinquerystringYesThe PIN to validate

Responses

CodeDescription
200PIN validated successfully
400PIN is required
404Invalid PIN or waiver already completed
410Waiver has expired
500Could not validate PIN

Update a waiver number

PATCH /pending-renters/{waiverNumber}

Updates waiver details with optimistic locking support

Parameters

NameInTypeRequiredDescription
waiverNumberpathstringYesThe waiver number to update

Request body

FieldTypeRequiredDescription
firstNamestringNo
lastNamestringNo
emailstringNo
phonestringNo
dobstringNo
addressobjectNo
assignTostringNo
assetIdstringNo
statusstringNo
renterIdstringNo
waiverUrlstringNo
templateIdstringNo
expectedVersionstringNoFor optimistic locking

Responses

CodeDescription
200Waiver updated successfully
400waiverNumber is required or no valid fields to update
404Waiver number not found
409Record has been modified by another user
500Could not update waiver number

Delete a waiver number

DELETE /pending-renters/{waiverNumber}

Deletes a waiver number (only if it is in pending status)

Parameters

NameInTypeRequiredDescription
waiverNumberpathstringYesThe waiver number to delete

Responses

CodeDescription
200Waiver number deleted successfully
400waiverNumber is required
409Can only delete pending waiver numbers
500Could not delete waiver number

Complete a waiver

PATCH /pending-renters/{waiverNumber}/complete

Marks a waiver as completed, removes the PIN, and optionally updates the renter record

Parameters

NameInTypeRequiredDescription
waiverNumberpathstringYesThe waiver number to complete

Request body

FieldTypeRequiredDescription
renterIdstringYesThe renter ID
waiverUrlstringYesURL to the completed waiver
signatureIdstringNo
completionDataobjectNoAdditional data to store with the waiver
expectedVersionstringNoFor optimistic locking

Responses

CodeDescription
200Waiver completed successfully
400waiverNumber, renterId, and waiverUrl are required
404Waiver number not found
409Waiver is not in pending status or has been modified
500Could not complete waiver

Was this page helpful?
Need help? Contact Support.See what’s new. Check out changelog.Questions? Book a video chat.
Ask AI
Responses are generated using AI and may contain mistakes.
Ask questions about RentalTide and get help with your integration.