LogoLogo
StatusChangelogDashboardCreate a Ticket
  • Getting Started
  • Intro to APIs
  • How to Contact us
  • How to Go-Live
  • Intro to Risk
  • Intro to Spec Sheets
  • Product Guides
    • Deposit Hub
      • 🌎Global Cash
    • Credit Hub
    • Payment Accounts
    • ID Score
  • API References
    • OAuth
      • OAuth Object Details
      • Create OAuth Key
      • Generate Refresh Token
    • Users
      • User Object Details
      • Testing on UAT
      • View All Users
      • View User
      • Create User
      • Update User
      • Generate UBO Doc
      • Manage Duplicates
      • Allowed Document Types
      • Allowed Entity Scopes
      • Allowed Entity Types
    • Nodes
      • Node Object Details
      • Testing on UAT
      • View all User Nodes
      • View Node
      • Create Node
      • Update Node
      • Generate eCash Barcode
      • Allowed Node Types
      • View ATMs
    • Subnets
      • Subnet Object Details
      • Testing on UAT
      • View all Node Subnets
      • View Subnet
      • Create Subnet
      • Update Subnet
      • Push to Wallet
    • Shipments
      • Shipment Object Details
      • View all Subnet Shipments
      • View Shipment
      • Create Shipment
      • Cancel Shipment
    • Statements
      • Statement Object Details
      • View all User Statements
      • View all Node Statements
    • Transactions
      • Transaction Object Details
      • Testing on UAT
      • View all User Transactions
      • View all Node Transactions
      • View Transaction
      • Create Transaction
      • Create Batch Transactions
      • Cancel Transaction
      • Retry ACH Transaction
      • Dispute Chargebacks
      • Dispute Transaction
    • Subscriptions
      • Subscription Object Details
      • Webhook Object Details
      • Testing on UAT
      • View all Subscriptions
      • View Subscription
      • Create Subscription
      • Update Subscription
      • View Webhook Logs
    • Miscellaneous
      • Dummy Transactions
      • Verify Address
      • Verify Routing Number
      • International WIRE-INT Required Data by Country
      • View Billers
      • View Enriched Data
      • Loan Limits
      • Transaction Decisioning
      • 3D Secure
      • Virtual Terminal
      • Pre-Authorization
      • Card Disputes Guide
      • Mobile Wallets
      • Interchange Revenue
      • Enrichment Guide
  • Developer Guides
    • User Onboarding
      • Create User Flow
      • Authenticate as the User
      • Create Node Flow
        • Cash Advance
        • Credit Builder Loan
        • One Time Loans
        • Secured Open Loans
        • Secured Revolving Loans
        • Unsecured Revolving Loans
      • Create Subnets Flow
        • Creating Cards
        • Creating AC/RT
      • Linking External Accounts
        • Linking Cards
        • Linking External Bank Account
      • Add Additional Documents
    • Account Details
      • Displaying Balances
      • Transaction History
      • Transaction Details
      • Account Agreements
      • Node Statements
      • Card Details
    • Managing Cards
      • Card Preferences
      • Setting PIN
      • Mobile Wallet Flow
        • Integrate with Apple Pay
        • Integrate with Google Pay
        • Integrate with Samsung Pay
      • Shipping Cards
    • Originating Transactions
      • Sending Fed Wires
      • Sending ACH Transfers
      • Sending International Wires
      • Deposit a Check
      • Issuing Checks
      • Recurring Transactions
      • 3rd Party Payment Accounts
      • Cancelling Transactions
      • Exceeding Origination Limits
    • Receiving Transactions
      • Transaction Decisioning
      • Receiving ACH / Wires
      • Card Transactions
      • Exceeding Inbound Limits
    • Managing Disputes
      • ACH Disputes
      • Card Disputes
    • 3rd Party Integrations
      • Payment Integrations
      • Account Aggregators
      • 3rd Parties & Compliance
  • Recipes
    • Overdraft Protection
    • Social Banking
    • Monetizing Transactions
Powered by GitBook
On this page
  • Description
  • Basic Patterns
  • Creating a Recurring/Scheduled Transaction
  • Canceling a Recurring Transaction
  • Executing a Scheduled Transaction

Was this helpful?

Export as PDF
  1. Developer Guides
  2. Originating Transactions

Recurring Transactions

PreviousIssuing ChecksNext3rd Party Payment Accounts

Last updated 2 years ago

Was this helpful?

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

Create relevant users and nodes
Create Transaction from your server