#500 — Facade manages (separate from PE) merchant statuses

Repo: Twill-AI/facade State: closed | Status: done Assignee: Unassigned

Created: 2025-08-15 · Updated: 2025-09-15

Description

Request

Caused by https://github.com/Twill-AI/twill-ai-ui/issues/573

In order to:

  • indicate “force submit merchant” functionality,
  • separate merchants having any processing volume and not,
  • indicate merchant applications delegated to full directly to merchants

we need to keep TwillAI-specific status of merchant, i.e. don’t rely on PayEngine’s status.

Expected merchant statuses, mapping to PE status and how UI would show it:

  • Editing: Just created. Maps as PE=editing, UI=Editing (@TwillPayments please confirm)
  • Sent to Merchant: Application submission was delegated to merchant. Maps as PE=editing, UI=Sent to Merchant
  • Lead: Application was force (i.e. with validation errors) submitted. Maps as PE=editing, UI=Lead
  • In Review: Both validations passed. Maps as PE=in_review/submitted_to_pe, UI=In Review
  • Action Required: Merchant has not empty status_message. Maps as PE=any, UI=Action Required
  • Approved: Approved but 0 processing volume. Maps as PE=active, UI=Approved
  • Active: Processing volume > 0. Maps as PE=active, UI=Active
  • Rejected: Application rejected. Maps as PE=declined, UI=Rejected

Acceptance criteria

  • Facade stores PE status in separate column.
  • Facade updates inner status from API calls and from PE status updates.
  • Front-end is updated to support new statuses.
  • (optional) Logic above is covered with unit tests.

Notes

Add implementation notes, blockers, and context here

Add wikilinks to related people, meetings, or other tickets