Wallet, payments, referrals, and the XICAR web platform converge
September 29 brought the ride, wallet, affiliate, referral, and web surfaces closer together around a shared payment and referral architecture.
Ride payments now use xicar-wallet as the source of truth for held fares, settlement, refunds, tips, cancellation credits, and recovery. Payment choices were expanded so GCash rides can be paid directly at booking, tips can use Cash, XICAR Wallet, or GCash, and cancellation fees can be settled through the wallet or GCash. Driver trip earnings use a configurable hold period and become withdrawable after 15 minutes once the related ride has finished settling.
The customer beta app also enables the My Wallet tab by default so testers can exercise wallet balance, top-up, withdrawal, and ride-payment flows. Follow-up fixes repaired beta compilation after the payment and referral reconciliation and preserved withdrawal request IDs across ambiguous retries so repeated requests remain idempotent.
Referral sign-up moves behind Affiliate
The referral sign-up flow now separates public referral handling from ride-account creation. The referral web calls Affiliate for invite validation, OTP orchestration, account sign-up, and referral binding, while the ride backend keeps only the internal operations it uniquely owns.
Affiliate also gained durable commission delivery and reversal behavior. Failed commission deliveries can be retried, refunded rides can reverse their commissions, and wallet calls use deterministic request identities so the same operation is not applied twice.
The standalone referral page remains the current customer-facing referral surface. It validates invite codes before requesting an SMS and uses Affiliate as its backend instead of relying on the mobile app login flow.
XICAR web moves to Celld
The former marketing repository is now the broader Xicar-PH/web surface. The existing marketing application has been moved into apps/marketing as the first workspace application, while deploy/web acts as the shared composition layer for the final web artifact.
The web deployment path now uses Celld for both beta and production fleets. GitHub Actions builds the static site, keeps beta and production deployments isolated, and publishes the selected artifact to the corresponding Celld-backed fleet storage.
This structure prepares the repository to host additional XICAR web applications alongside marketing, including the referral experience and shared-ride detail pages. Those applications have not been moved into Xicar-PH/web yet; the September 29 work establishes the repository and deployment boundaries needed to add them without creating separate deployment stacks.
Ride reliability fixes
The same integration work also repaired multi-stop route and fare calculation for rides with intermediate waypoints and added the missing payment columns required by the online-payment flow, preventing schema mismatches during ride creation.
References
- https://github.com/Xicar-PH/ride-hailing-mirror/pull/19
- https://github.com/Xicar-PH/ride-hailing-mirror/pull/25
- https://github.com/Xicar-PH/ride-hailing-mirror/pull/35
- https://github.com/Xicar-PH/ride-hailing-mirror/pull/37
- https://github.com/Xicar-PH/ride-hailing-mirror/pull/38
- https://github.com/Xicar-PH/ride-hailing-mirror/pull/48
- https://github.com/Xicar-PH/ride-hailing-mirror/pull/49
- https://github.com/Xicar-PH/xicar-wallet-mirror/pull/10
- https://github.com/Xicar-PH/xicar-wallet-mirror/pull/15
- https://github.com/Xicar-PH/xicar-affiliate-mirror/pull/8
- https://github.com/Xicar-PH/xicar-affiliate-mirror/pull/9
- https://github.com/Xicar-PH/referral_qr-mirror/pull/1
- https://github.com/Xicar-PH/web/pull/13
- https://github.com/Xicar-PH/web/pull/15