2. Split Payments
ReMatter users have to split scale ticket payments for:
- compliance reasons: Material type is what restricts payout today. Many states have regulations for nonferrous materials: as in they are legally restricted to pay out a maximum of $20 today and remaining of total payout after 3 days
- internal reasons: prefer to limit the amount of $ paid by cash and remaining amount is to be paid by check
- deferring total payment: pay small amount today and then pay out the remaining after allowing for proper grading of material
Business Invariants and Rules:
Users require split payments to have the:
- ability to select frequency (# of payments)—> user enters how many payments the payment will be split between
- ability to split payment across a time period: days, weeks, month
- ability to split payment across method: partial check, partial cash, partial ACH
- ability to split payment basis: % and $
Solution
Maintain the current interface for payment preferences (type, schedule, legal hold) but add more payment flexibility to allow the user to know the total value of the scale ticket, enter the dollar value they want to pay out or % of the ticket, allow the user to split the payment an unlimited # of times, and apply legal holds to the payment splits independently.
Edge Cases:
- cashier doesn’t know the material type (material type like nonferrous is what restricts payout due to state-specific scrap metal compliance rules) related to a scale ticket, so scale operator must check “legal hold” when applicable
- Must be shown the total value of the scale ticket in the event that they want to roughly pay out 20% of the ticket (to be ~at 10k)
Risks and Rabbit Holes
Risks:
- user may forget to log the manual payments (i.e. check) when split payments are allowed
- harder to track what payment went to what material in the event of paying against a regulated material
- material is returned to the customer and payment is refunded it is harder to clawback parts of the split payment (esp if a cash payment had been issued rather than a check that could be canceled)
- “specify payment split” button if payment amount is less than 100% of the value of the total scale ticket amount;
- if one of the split payments (the payable payment) is voided, the original Payable Note is adjusted
Rabbit Holes [out of scope items; better fit for future work]
- Receiving Split Payments
- Handling Multi-Currency
Decisions
1.) Show 1 payment by default to ensure that those who are not using split payments are not affected by a new UI.
2.) If the user enters the payment amount as %, then grey out the “amount” field
3.) If the user enters a payment amount or a % that is not equivalent to the total face value of the ticket/100% of the ticket, then automatically feeds a second payment split into the modal. In this second payment split, the user must schedule when the remaining amount of the scale ticket will be paid.
4.) Allow users to add as many “splits” against the scale ticket payment as they like.
5.) The UI design was modeled after Load Board> Custom Jobs and uses a similar general format to keep this component scalable. The interface will be identical for handling payout of multiple scale tickets within Payments> All Payables
Payable Note Logic:
- A payable note can be associated 1:1 OR 1: many payable payments
- When a payable payment is issued for $x, set the payable note to be equal to $x. Create a secondary payable note in which the amount= total-$x
Voiding Payable Payment Logic:
- If the user voids the payable note, then the system should update the payable note, i-1.