Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.colismove.com/llms.txt

Use this file to discover all available pages before exploring further.

Quatre scénarios couvrent les sorties non-nominales de la machine à états avant LIVREE.

Sc 3 — Annulation pré-dépôt par expéditeur

Logique

  • Annulation autorisée tant que dépôt non effectué (EN_ATTENTE ou ACCEPTEE)
  • Pénalité timing-based selon le délai entre booking et annulation (commit 087b4f2)
  • Stripe refund 100% du PaymentIntent capturé

Endpoint

POST /v1/api/bookings/{id}/cancel-with-refund
Référence : commit 087b4f2

Sc 4 — Refus transporteur

Anti-abus

  • Compteur mensuel basé sur updatedAt JPA (zero migration)
  • Seuil 3 refus / mois → alerte admin + email carrier
  • 6 tests Mockito + 84 tests reservation verts
Référence : commit 3572e91

Sc 5 — Annulation post-dépôt → forcée vers litige

Si le sender tente d’annuler après le dépôt (état EN_COURS_DE_LIVRAISON), le système bloque l’annulation directe et force l’ouverture d’un litige : on ne peut plus rembourser sans intervention humaine car le colis est physiquement en transit. Référence : commit 087b4f2 (mêmes commits que Sc 3 — gate timing-based)

Sc 17 — Destinataire absent à la livraison

Le carrier arrive au point de livraison mais le recipient est absent. Le système autorise 3 tentatives maximum avant de basculer le booking en échec.

Endpoint

POST /v1/api/bookings/{id}/livraison-echouee

Erreur après 3 tentatives

{
  "errorCode": "MAX_TENTATIVES_LIVRAISON_ATTEINTES",
  "status": 422,
  "message": "Nombre maximal de tentatives de livraison atteint"
}

Tests

  • 6 tests Mockito + 78 tests reservation verts
Référence : commit f1c9bf7

Récap effets Stripe par scénario

ScénarioAction StripePénalité ColisMove
Sc 3 (pré-dépôt)Refund 100%Timing-based (jusqu’à -10%)
Sc 4 (refus carrier)Refund 100%Aucune côté sender, counter carrier
Sc 5 (post-dépôt)Hold + résolution litigeDécidée superadmin
Sc 17 (3 échecs)Hold pending litigeDécidée superadmin