Developer Documentation

Technical reference for FoodRunz platform

Backend Functions API

sendPlanPaymentLink

Creates a Stripe checkout session for vendor subscriptions

// Request
{
  "vendor_email": "vendor@example.com",
  "plan_name": "tier_1",
  "stripe_product_id": "prod_xxx",
  "stripe_price_id": "price_xxx"
}
// Response
{
  "checkout_url": "https://checkout.stripe.com/...",
  "session_id": "cs_xxx"
}

createStripeConnectAccount

Creates Stripe Connect account for driver payouts

// Request
{
  "driver_id": "driver_profile_id"
}
// Response
{
  "url": "https://connect.stripe.com/...",
  "account_id": "acct_xxx"
}

sendWelcomeEmail

Sends welcome email to new vendors or drivers

// Request
{
  "email": "user@example.com",
  "user_type": "vendor" | "driver",
  "name": "John Doe"
}
Environment Variables

STRIPE_SECRET_KEY

Stripe secret key for API calls (starts with sk_live_ or sk_test_)

STRIPE_PUBLISHABLE_KEY

Stripe publishable key for frontend (starts with pk_live_ or pk_test_)

STRIPE_WEBHOOK_SECRET

Webhook signing secret (starts with whsec_)

BASE44_APP_ID

Auto-populated app identifier (no setup required)

Core Entities

VendorBusiness

Vendor business profiles and subscription info. Indexed fields: owner_email, subscription_status

DriverProfile

Driver profiles and performance metrics. Indexed fields: user_email, status

ShiftAssignment

Active shift assignments. Indexed fields: driver_id, business_id, status, shift_date

DriverRequest

Vendor driver requests. Indexed fields: business_id, status, start_date

VendorSubscription

Stripe subscription tracking for vendors

Common Issues & Solutions

Stripe Checkout Not Working

  • • Verify STRIPE_SECRET_KEY is set correctly
  • • Check that stripe_price_id matches a valid Stripe price
  • • Ensure checkout is not being opened in an iframe
  • • Confirm webhook is registered and receiving events

Driver Payouts Not Processing

  • • Verify driver completed Stripe Connect onboarding
  • • Check stripe_connected_account_id is saved in DriverProfile
  • • Ensure sufficient balance in Stripe account
  • • Review Stripe dashboard for payout failures

Emails Not Sending

  • • Verify email format is valid
  • • Check function logs for SendEmail errors
  • • Ensure from_name parameter is provided
  • • Confirm email content is properly formatted HTML

Authentication Errors

  • • Check user is logged in (base44.auth.me() returns user)
  • • Verify user role matches required permissions
  • • Use base44.asServiceRole for admin operations
  • • Ensure proper error handling for 401/403 responses

Need More Help?

Contact our technical support team

1-800-FOODRUNZ