Skip to main content

User Journey

This guide demonstrates a complete user journey through the Cariqa Connect API, showing how all the endpoints work together to deliver a seamless charging experience.

Flow Overview

  1. User Registration - Create user account
  2. Payment Setup - Add and configure payment method via Stripe
  3. Station Discovery - Find nearby charging stations
  4. Start Charging - Initiate a charging session
  5. Monitor Session - Track charging progress
  6. Stop Charging - End session and get receipt

1. User Registration

First, create a user account in the system:
Response:

2. Payment Method Setup

2.1 Create Setup Intent

Get a Stripe setup intent to securely collect payment information:
Response:

2.2 Frontend Stripe Integration

The following Stripe integration MUST happen on your frontend for PSD2/SCA compliance.
Follow the Payment Frontend Setup guide to confirm the Setup Intent on the client side (iOS, Android, Web).

2.3 Verify Payment Method Added

Response:

3. Station Discovery

Find nearby charging stations:
Response (partial):

4. Start Charging Session

Initiate charging with the selected EVSE and payment method:
Response:

5. Monitor Charging Session

Poll the session status to track progress:
Response (during charging):

6. Stop Charging Session

When charging is complete, stop the session:
Response:

7. Get completed charging session

Retrieve the complete session details with final costs:
Response:

Error Handling Best Practices

Throughout this flow, implement proper error handling:
Example Error Handling

Summary

This complete flow demonstrates how to:
  1. Create user accounts with proper authentication
  2. Securely collect payment methods via Stripe integration
  3. Discover charging stations with location-based search
  4. Initiate charging sessions with payment authorization
  5. Monitor session progress with real-time status updates
  6. Complete sessions and generate detailed receipts
The entire process is designed around the backend-to-backend authentication model, where your backend manages users on behalf of your customers while maintaining full control over the user experience.