Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add canadian e-transfer payment integration #202

Closed
tantodefi opened this issue Dec 5, 2023 · 2 comments
Closed

Add canadian e-transfer payment integration #202

tantodefi opened this issue Dec 5, 2023 · 2 comments
Assignees

Comments

@tantodefi
Copy link

I would assume it would use much of the same circuits, would just have to change the regex and add an additional dkim key (or several for each bank) ?

@richardliang richardliang assigned tantodefi and unassigned tantodefi Dec 5, 2023
@omurovec
Copy link

Background

E-transfers are the most common form of money transfers in Canada. They are integrated with most Canadian banks are sent through email or text. Usually you are required to provide a receiver email/phone number, a password, a hint, and a message. Most people also have auto-deposit enabled which bypasses the need for a password.

Considerations

  • All deposit emails are received from notify@payments.interac.ca regardless of which banks were involved so we will only need to add a single DKIM key

  • There are a few emails we can use for proof generation:

    1. auto-deposit confirmation sent to sender - The sender receives this email when their sent transaction was deposited to an account that supports auto-deposit
    2. deposit confirmation (with password) sent to sender - The sender receives this email when the sent transaction was deposited by the receiver using a password
    3. auto-deposit confirmation to receiver - The receiver receives this email when the sender's transfer was automatically deposited into their account

    The easiest implementation would be to require that all users support auto-deposit to use the platform and create a circuit to verify email type (1). In the future we could add a feature where receivers who do not have auto-deposit enabled can communicate a password with senders but this would require a bit more work. Most users already have auto-deposit enabled as well.

  • There is a reference number for each e-transfer. This may be useful for accessing more information from the interac api however it is a closed api and requires developers to submit an application to get access.

Benefits

  • A nice part about e-transfers it that it seems like they are a lot less reversible than venmo transfers. (https://www.reddit.com/r/PersonalFinanceCanada/s/0xJutG94jF)

    on a regular day once a transfer is completed, money deposited in the account it's final. But if the transfer is in progress, under review or haven't been accepted by the recipient, it can be reversed.

    The only other situation where reversal occurs is if it was fraud and the bank is convinced that it is so. For eg, if 1000CAD is send from your RBC to a person who banks with RBC as fraud, the bank can make that money come back from the fraudsters account. Actually the bank pays you and then takes the money from the other persons account. If it's inter bank, ie RBC to TD, theoretically it's possible but a tedious process.

Issues

A big issue with e-transfer eml contents is that the receiver's "id" is not the same as their email or phone number, instead it is an identifier that can be arbitrarily chosen. This is problematic since a buyer could simply send an e-transfer to an account where the id matches the id of the seller. This could also create issues with verifying a deposit since there are 2 strings to verify that are decoupled: 1. The receiver email address which is not contained in the deposit email, 2. The receiver ID which can be decoupled from the email address and is not guaranteed unique.

This might be able to be solved with the Interac API + TLSNotary but will need to gain access in order to find out more.

@tantodefi
Copy link
Author

doesn't seem possible without FI verification to interac API... thanks @omurovec for the work/research. gonna have to close till someone has a new idea for this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants