Describes flow of requests between Payment and Dating applications.
=== Conditions for offering step-down flow
Original transaction submitted to **Payment App** must fail in certain way and there must be appropriate config (1)
- **Payment Processor** must support `step-down flow`. At the moment only Credit Card processors support this.
- Transaction amount must be greater or equal to USD 2.5. Non-USD currencies are converted to USD using `Currency_Rates_Model` before this check.
- Original transaction must fail with either
-- NSF error - code 608, or
-- Declined General - code 610 __and__ submitted Credit Card is either **prepaid** or **gift** card (2)
=== Offering the step-down flow to partner
If above conditions are met, and there is a configuration match (3) then **Payment App** will offer step-down flow to **Partner**.
Step-down flow is offered by setting following additional parameters in `transaction.finish` response (all other parameters in response will be set to those of original transaction) :
- `step_down_condition` = true
- `step_down_percent`
- `step_down_retry` = 1
- `step_down_amount`
=== Partner follows `step-down` flow
When **Partner** detects that the step-down flow is offered by `transaction.finish` response (by checking `step_down_condition` parameter), he can opt to follow `step-down` flow.
WIP (need to look into exact details for uprp's)