Centre d’aide/Escrow et finance/Escrow auto-release: quand l’horloge d’inspection expire
07Escrow et finance3 min de lecture

Escrow auto-release: quand l’horloge d’inspection expire

Comment fonctionne l’auto-release par cron, ce qui l’arrête, et pourquoi elle existe à côté de la confirmation manuelle four-eyes, pas a sa place.

Un escrow held pour toujours est un mauvais outcome pour tout le monde. Le buyer a accepted ou non. Le seller a fait le travail. Si aucune partie ne ferme la boucle, la plateforme le fait — automatiquement, après une fenêtre configurée. Auto-release est le backstop driven by cron qui empêche les escrows d'être oubliés.

La clock

L'auto-release window est une tenant policy (voir /escrow/policies, H7), mesurée en days depuis goods-received. Le default est 7 days. Quand la fenêtre expire sans explicit acceptance, explicit rejection ou active dispute, le cron release les funds au seller et écrit le release event dans l'immutable audit trail avec la reason “auto-release: inspection window elapsed.”

Ce qui l'arrête

Trois choses arrêtent le cron mid-window : explicit acceptance (le buyer clique Accept, funds release immédiatement), explicit rejection (le buyer reject avec une reason, funds hold pending dispute), et active dispute (une dispute pause la clock jusqu'à resolution). Le cron check chaque escrow row avant de décider de release ; rien dans l'auto-release ne fires blindly.

Distinct from manual four-eyes

Le four-eyes confirm (voir escrow-four-eyes-deposit-confirmation) est un autre control côté deposit : deux operators doivent convenir que le wire du buyer est arrivé avant que la plateforme marque le deposit confirmed. Auto-release est côté release : la plateforme release d'elle-même quand le buyer n'agit pas. Les deux controls coexistent. Le côté deposit reçoit la paire humaine ; le côté release reçoit le timer.

Cron behaviour

Le job /api/cron/escrow-auto-release tourne une fois par hour. Il scanne les escrows dont la goods-received date est plus ancienne que l'auto-release window, où le status est encore “held” et aucune dispute n'est open. Pour chaque match, il exécute la release transaction atomically : write the settlement row, flip the escrow status, post the audit event, queue the seller notification. Le cron raises si la tenant policy manque au lieu de faire silencieusement nothing — une release sans policy est une release sans agreed window.

Ce que voit le buyer

Depuis day-of-shipment, le buyer voit un countdown sur le deal : “release in 12 days unless you accept or dispute.” C'est une feature, pas une menace — le timer signifie que le buyer n'a pas besoin de se souvenir de cliquer Accept sur un deal qui s'est bien passé.