Recurring Transactions

Description

Recurring transactions are a part of everyday life, however due to the complexities of failure handling and customer communication, Synapse does not directly manage scheduled transactions outside of loan repayments.

Basic Patterns

  • Pick a task scheduler and runner

  • Record scheduled transactions and their current state (future, pending, executed, etc) in a datastore of some form

  • Make sure scheduled tasks are self healing (ie processes will automatically recover from intermittent failure)

  • Ensure background tasks are interruptible and atomic

  • Pick a priority:

    • Maximize success with fan out patterns (such as 1 scheduled transaction per task)

    • Minimize cost with batch transactions (such as all transactions in a single task)

  • Enforce idempotency within app and Synapse for scheduled transactions

Creating a Recurring/Scheduled Transaction

  1. Collect payment details

    1. Nickname

    2. Sender

    3. Receiver

    4. Amount

    5. Frequency

    6. Start Date

    7. End Date

  2. Display Transaction Disclosures

    1. Express authorization language (e.g., “I authorize <Platform> to debit my account")

    2. Amount of transaction

    3. The date of transaction

    4. Account identifiers for both the accounts involved (account/routing, bank name with last 4 digits of account, etc.)

    5. Revocation language (for payments scheduled in advance)

    6. Cancellation Details for future transactions

    7. Frequency (daily, weekly, monthly) and timing of transactions (start/end date)

  3. Store recurring transaction details in data store

Canceling a Recurring Transaction

  1. Display list of Recurring Transactions (Platform DB)

    1. Name

    2. Amount

    3. Frequency

    4. Next transaction Date

  2. Select recurring transaction

  3. Display full recurring transaction details

    1. Name

    2. Amount

    3. Frequency

    4. Start Date

    5. End Date

    6. Recipient

    7. Sender

    8. Next transaction date

    9. Required Language: This is an authorized recurring debit from your account

  4. Collect Affirmative Consent from the user

  5. Delete the recurring transaction

  6. Delete all upcoming transactions

Executing a Scheduled Transaction

  1. Notify user of upcoming transaction 7 Days in advance

    1. Transaction Date

    2. Recurring Transaction Nickname

    3. Amount

    4. Recipient

    5. Sending Account

  2. Notify user of upcoming transaction 24 hours prior to executing the transaction

    1. Transaction Date

    2. Recurring Transaction Nickname

    3. Amount

    4. Recipient

    5. Sending Account

    6. Current Account Balance

    7. If the transaction exceeds the current balance

  3. Get Account Balance (if external account) immediately before creating the transaction

    1. Pull from 3rd party aggregator

  4. Notify user via email that the scheduled transaction was executed

    1. Transaction Date

    2. Recurring Transaction Nickname

    3. Amount

    4. Recipient

    5. Sent Account

    6. Current Account Balance

Notes:

  • To reduce ACH returns, always check the balance before initiating a scheduled ACH debit request

Last updated