Different payment methods interact with mandate_options and the recurring payment flow in different ways.
This page documents the behaviour for each supported payment method across first_in_series and next_in_series sessions.
first_in_series
The customer is present. Consent is captured and a mandate is created.
| Cards | Capitec VRP |
|---|
| Customer interaction | Yes, customer completes checkout flow | Yes, customer approves consent in Capitec Pay App |
| Provider-side registration | Yes, for some card networks | Yes, VRP consent created at Capitec with explicit terms |
| Mandate Type | scheduled, on_demand, or installment | scheduled, on_demand, or installment |
| Recurrence | Optional, some card providers use it as a consent hint for interval and duration. Enforcement varies by network | Required, used to set the consent interval. Without it, Capitec VRP is not offered at checkout |
| Variable amount | Yes | Yes, a variable amount can be collected, but amount.max sets the consent ceiling, fixed for the life of the consent |
| Amount and period constraints | Managed by Moment | Yes, amount.max sets the consent ceiling and cannot be updated. Other constraints managed by Moment |
For Capitec VRP, recurrence must be present regardless of mandate type.For scheduled and on_demand mandates, set recurrence directly on mandate_options. For installment mandates, set recurrence on terms (both periodic and fixed term types support this). When recurrence is absent, Capitec VRP is excluded from the checkout payment method options and no error is returned to the merchant.For installment mandates, the platform derives amount.max for Capitec VRP consent registration from the installment items. For terms.type: periodic, this is terms.amount (the per-installment amount). For terms.type: fixed, this is the largest amount across terms.items[*].amount. The merchant does not need to declare amount.max explicitly.
next_in_series
The customer is not present. Payment is executed against an existing mandate.
| Cards | Capitec VRP |
|---|
| Customer interaction | No | No |
| Mechanism | Payment collected against saved card | Payment collected against stored consent |
| Variable amount | Yes | Yes, a variable amount can be collected, but constrained within amount.max set at consent creation |
| Automated via subscription | Yes | Yes |
| Pre-payment validation | Mandate active | Mandate active and consent status verified with Capitec before each collection |