Skip to content

[Feature] Send money in OpenBanking + payment tasks - #107

Open
aaronsmulktis wants to merge 14 commits into
mainfrom
aaronsmulktis/payments
Open

aaronsmulktis wants to merge 14 commits into
mainfrom
aaronsmulktis/payments

Conversation

@aaronsmulktis

@aaronsmulktis aaronsmulktis commented Oct 30, 2026 •

Copy link
Copy Markdown
Contributor
payments-sizzle

Changes:

  1. Send money in OpenBanking: a Send money button on every deposit account opens a form (from, to, amount, memo), a review step and a confirm that lands back on the account with a "Sent $X to Name" notice
  2. The To field searches Contacts; a contact's name pays their handle (email first, else phone), and any spelling of a phone or email resolves to the same payee
  3. Paying someone new offers Save to Contacts on the review step, using the same insert path as New Contact (contacts_app.add_contact)
  4. Nothing in OpenBanking is pending: payments, card charges, overlimit notices and declines post immediately, dated on the pinned as_of_date in the pack's date format, with the running balance after each row; a refused send writes nothing
  5. The seeded Part Corp real-time transfer is now a dated row with its balance; a seeded row without a date or balance is refused at launch
  6. Ledger rows gain counterparty and memo, null except on payments
  7. New seeded account EVERYDAY CHECKING (...4417) for Dana Reyes, added after the business accounts in every pack; existing ids, figures and task answers are unchanged
  8. SendMoneyTask: exact payee match (samortiz@ is not sam.ortiz@), to_contact accepts any of the contact's handles, memo rules match whole words with alternatives ("Unit-2" and "Apt Refactor test setup in test_apps.py #2" pass, "Unit 21" fails)
  9. Composite tasks with several payments pair them in any order, including overlapping payees and same-amount payments that differ only by memo
  10. Card purchase targets (BuyWithCardTask, DeclinedCardPurchaseTask) predict each row's date and balance via posting_date (override for german/mandarin)
  11. tasks=payments: pay September's rent from the lease in Files (with decoys in the misleading Contacts and Files packs), send Bob $18 by name, pay Sam Ortiz and save them, each in casual/formal/unrelated-context phrasings; kept out of all_tasks
  12. Renamed note_pending_transfer_in_calendar_and_todo → note_realtime_transfer_in_calendar_and_todo
  13. Send money strings in English, German and Mandarin
  14. Tests: send_payment and the pages, reward pass/fail cases on live app state, the task set under the default and misleading Contacts packs, and a Playwright run through the whole flow
  15. Screenshots of the send form, review and account ledger across 16 variations; Payments docs in tasks.md; CHANGELOG entry

@meta-cla meta-cla Bot added the CLA Signed This label is managed by the Meta Open Source bot. label Oct 30, 2026
@aaronsmulktis aaronsmulktis self-assigned this Oct 30, 2026
@aaronsmulktis
aaronsmulktis requested a balanced review from Copilot October 30, 2026 22:29
@aaronsmulktis
aaronsmulktis marked this pull request as ready for review October 30, 2026 22:29

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has insufficient remaining quota.

@marksibrahim marksibrahim left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice work! Payment worked as expected with the contacts. A couple of issues to fix before merging:

  • Amount with commas: src/open_apps/apps/openbanking_app/send.py:76. parse_amount removes every comma, not just thousands separators.
    • "18,50" becomes 1850.00 and "1.850,00" becomes 1.85.
  • Pending becomes available after payment is submitted. It should remain pending:
Image

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@aaronsmulktis do we need all these test screenshots commited in the repo?

Comment thread CHANGELOG.md
name, each with casual, formal and unrelated-context phrasings. Kept out of
`all_tasks`, like the OpenBanking set.
- Known sender names in the messenger link to their contact card.
- **Send money** in OpenBanking: a Send money link on every deposit account

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sweet, thanks for keeping this up to date!

@marksibrahim marksibrahim left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

looks good, thank you Aaron!

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CLA Signed This label is managed by the Meta Open Source bot.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants