> ## Documentation Index
> Fetch the complete documentation index at: https://docs.younegotiate.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Change Payment Date

> Jane needs to move her next installment from Friday to Monday.

## Real-World Example

Jane needs to move her next installment from Friday to Monday. If the plan allows it, the portal should reschedule the payment and update external calendar events so the old date is not still shown.

## Visual Flow

```mermaid placement="top-right" actions={true} theme={"system"}
flowchart TD
    A["Consumer requests date change"] --> B["Portal validates eligible transaction"]
    B --> C{"New date allowed?"}
    C -->|Yes| D["Schedule transaction is rescheduled"]
    C -->|No| E["Date change is blocked"]
    D --> F["Calendar event moves to new date"]
    classDef default fill:#F8FAFC,stroke:#64748B,stroke-width:1.5px,color:#0F172A;
    classDef actor fill:#E0F2FE,stroke:#0284C7,stroke-width:2px,color:#0C4A6E;
    classDef system fill:#F8FAFC,stroke:#64748B,stroke-width:1.5px,color:#0F172A;
    classDef decision fill:#FEF3C7,stroke:#D97706,stroke-width:2px,color:#78350F;
    classDef risk fill:#FEE2E2,stroke:#DC2626,stroke-width:2px,color:#7F1D1D;
    classDef outcome fill:#DCFCE7,stroke:#16A34A,stroke-width:2px,color:#14532D;
    class A actor;
    class B,D,F system;
    class C decision;
    class E risk;
    class F outcome;
    linkStyle default stroke:#94A3B8,stroke-width:2px;
```

## How It Should Work

* It should allow date changes only for eligible future transactions.
* It should preserve payment amount, account, and plan context.
* It should update external calendar events after the date changes.

## How It Should Not Work

* It should not move past, successful, cancelled, or ineligible transactions.
* It should not create two active payments for the same installment.
* It should not leave the old calendar event active after a successful date change.

## Developer Notes

* Date changes are handled by both My Account and Schedule Plan components.
* The old and new schedule transaction ids are used by calendar update jobs.

## Related App Areas

* `app/Livewire/Consumer/MyAccount/ChangeFirstPayDate.php`
* `app/Livewire/Consumer/SchedulePlan/ChangeDate.php`
* `app/Jobs/UpdateCalendarEvents.php`
