Twin: synonymdev/bitkit-ios#806
Refs:
Problem or use case
A payer has to approve every Paykit request from a contact by hand, even small recurring ones they would always pay.
Proposed solution
Add allowances to Bitkit on top of the Paykit allowances SDK:
- Subscriptions gets an Allowances tab:
- an empty state
- the list, with each allowance's status, per-payment limit and monthly limit
- Add Allowance → contact → Set Allowance, with per-payment stops $1–$50 and monthly stops $10–$500
- The proposal is sent over the contact's private Paykit link. The receiver gets a review sheet with Accept and Decline, and either side can end the allowance from its detail sheet.
- A request covered by an accepted, active allowance is reserved in the SDK's allowance accounting, paid over Lightning and recorded. The payer gets a "Payment Executed" notification, and the Payments tab tags the row "Auto-paid".
- These requests follow the ordinary Payment Request flow:
- above the per-payment limit
- over the monthly cap, where the payer also gets a "Limit Reached" notification
- sent before the allowance was accepted
- sent after the allowance ended
- An automatic payment waits for a usable Lightning channel and for the payee's next private payment list instead of falling back to manual.
- Paykit state written by the current rc55 SDK stays readable after an upgrade to this build and after a downgrade back.
Done when:
- Under both limits, a request is paid with no prompt on the payer's phone.
- Above the per-payment limit, the payer gets the normal Payment Request sheet.
- Over the monthly cap, the request asks and the payer is notified.
- After either side ends the allowance, every request asks again.
- Killing the payer's app right after the payment is handed to the node never leads to a second payment after relaunch.
Alternatives considered
See the epic.
Additional context
- The Paykit dependency in the refs above must be published first. Until then the implementation builds against a local build of it.
- Design, Figma "Bitkit - Experimental New". The receiver's review sheet and the detail sheet have no frame yet:
Twin: synonymdev/bitkit-ios#806
Refs:
Problem or use case
A payer has to approve every Paykit request from a contact by hand, even small recurring ones they would always pay.
Proposed solution
Add allowances to Bitkit on top of the Paykit allowances SDK:
Done when:
Alternatives considered
See the epic.
Additional context