Giter Site home page Giter Site logo

woudt / bunq2ifttt Goto Github PK

View Code? Open in Web Editor NEW
23.0 5.0 8.0 15.12 MB

bunq2IFTTT creates a self-hosted interface between the bunq banking API and IFTTT.

License: MIT License

Python 92.05% HTML 7.95%
bunq ifttt ifttt-service ifttt-api unofficial api bank banking finance

bunq2ifttt's Introduction

bunq2IFTTT

This app creates an interface between the bunq banking API and IFTTT.

Create your own private service on the IFTTT Platform and self-host the bunq2IFTTT app, e.g. in Google App Engine.

Features are:

  • Real time triggers on mutations, balances and incoming requests
  • The ability to make (draft) payments
  • Security oriented, using OAuth where possible and by separating the API key in a separate instance using master/slave mode where it is really needed

See the Wiki page for installation and usage instructions.

Also, see the Changelog if you have installed a previous version to see what is changed and if there are any specific upgrade instructions.

This is open source software, which you can use free of charge (but please note the disclaimer below). Feel free to buy me a beer though ;)

Disclaimer

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

bunq2ifttt's People

Contributors

woudt avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

bunq2ifttt's Issues

Montly spending report

It would be awesome to have a monthly report on your spendings from various bank accounts. So on the first of the month you get an email with all your expenses (and possibly locations, maybe even certain milestones). Are you familiar with the Google Maps Timeline update?

I can help with the styling of the email, but want to ask you first what the best way to implement this would be. If you're in favor of this idea as well!

Change card account clears secondary linked account

When I change the account linked to a card, the secondary account is cleared and needs to be setup manually in the bunq app again. The secondary account needs to be passed too in the call to the bunq api.

Callback exception trace, optional fields IFTTT, project status

Hi,

thanks for the great project. Also the documentation looks very, very good for a project this size.

I wonder if the project is still alive? I tried installing the project, but get some exceptions on callbacks:

2022-08-18 09:42:41 default[redacted]  [bunqcb_mutation] input: {"NotificationUrl": {"target_url": "https://redacted.appspot.com//bunq2ifttt_mutation", "category": "MUTATION", "event_type": "MUTATION_RECEIVED", "object": {"Payment": {"id": 123456, "created": "2022-08-18 09:42:41.119373", "updated": "2022-08-18 09:42:41.119373", "monetary_account_id": 12345, "amount": {"currency": "EUR", "value": "0.01"}, "description": "", "type": "BUNQ", "merchant_reference": null, "alias": {"iban": "DE123456789000", "is_light": false, "display_name": "Forename", "avatar": {"uuid": "redacted", "image": [{"attachment_public_uuid": "redacted", "height": 1024, "width": 1024, "content_type": "image/jpeg", "urls": [{"type": "ORIGINAL", "url": "https://bunq-prod-model-storage-public.s3.eu-central-1.amazonaws.com/bunq_file/File/content/redacted.jpg"}]}], "anchor_uuid": null, "style": "NONE"}, "label_user": {"uuid": "redacted", "display_name": "Forename", "country": "DE", "avatar": {"uuid": "redacted", "image": [{"attachment_public_uuid": "redacted", "height": 389, "width": 389, "content_type": "image/jpeg", "urls": [{"type": "ORIGINAL", "url": "https://bunq-prod-model-storage-public.s3.eu-central-1.amazonaws.com/redacted.jpg"}]}], "anchor_uuid": "redacted", "style": "NONE"}, "public_nick_name": "Forename", "type": "PERSON"}, "country": "DE"}, "counterparty_alias": {"iban": "DE123456790000", "is_light": false, "display_name": "Forename Lastname", "avatar": {"uuid": "redacted", "image": [{"attachment_public_uuid": "redacted", "height": 1024, "width": 1024, "content_type": "image/jpeg", "urls": [{"type": "ORIGINAL", "url": "https://bunq-prod-model-storage-public.s3.eu-central-1.amazonaws.com/bunq_file/File/content/redacted.jpg"}]}], "anchor_uuid": null, "style": "NONE"}, "label_user": {"uuid": "redacted", "display_name": "Forename Lastname", "country": "DE", "avatar": {"uuid": "redacted", "image": [{"attachment_public_uuid": "redacted", "height": 389, "width": 389, "content_type": "image/jpeg", "urls": [{"type": "ORIGINAL", "url": "https://bunq-prod-model-storage-public.s3.eu-central-1.amazonaws.com/bunq_file%2FFile%2Fcontent%redacted.jpg"}]}], "anchor_uuid": "Redacted", "style": "NONE"}, "public_nick_name": "Forename", "type": "PERSON"}, "country": "DE"}, "attachment": [], "geolocation": null, "batch_id": null, "scheduled_id": null, "address_billing": null, "address_shipping": null, "sub_type": "PAYMENT", "request_reference_split_the_bill": [], "balance_after_mutation": {"currency": "EUR", "value": "1.01"}, "payment_auto_allocate_instance": null}}}}
2022-08-18 09:42:41 default[redacted]  Traceback (most recent call last):    File "/srv/event.py", line 136, in bunq_callback_mutation      print("[bunqcb_mutation] translated: {}".format(json.dumps(item)))    File "/opt/python3.7/lib/python3.7/json/__init__.py", line 231, in dumps      return _default_encoder.encode(obj)    File "/opt/python3.7/lib/python3.7/json/encoder.py", line 199, in encode      chunks = self.iterencode(o, _one_shot=True)    File "/opt/python3.7/lib/python3.7/json/encoder.py", line 257, in iterencode      return _iterencode(o, 0)    File "/opt/python3.7/lib/python3.7/json/encoder.py", line 179, in default      raise TypeError(f'Object of type {o.__class__.__name__} '  TypeError: Object of type method is not JSON serializable

Furthermore, with the mutation triggers, I get errors in IFTTT if i do not provide every parameter. I double checked the documentation looking for a way to define optional parameters. But according to documentation, a mutation trigger with ANY/ANY is possible without defining the remaining.

image

Is anybody currently using the project with success?

Thank you very much.

Superfluous field "notification_filters"

I'm trying to change some triggers in a bunq slave, but I'm getting the following error:

127.0.0.1 - - [26/Oct/2019 13:10:30] "GET / HTTP/1.1" 200 -
127.0.0.1 - - [26/Oct/2019 13:10:30] "GET /static/bunq2ifttt.png HTTP/1.1" 304 -
GET v1/user/XXXX/monetary-account-joint/XXXX
New:  [{'notification_delivery_method': 'URL', 'notification_target': 'https://XXXX.appspot.com/bunq2ifttt_request', 'category': 'REQUEST'}]
PUT v1/user/XXXX/monetary-account-joint/XXXX
{'Error': [{'error_description': 'Superfluous field "notification_filters".', 'error_description_translated': 'Superfluous field "notification_filters".'}]}
Result:  {'Error': [{'error_description': 'Superfluous field "notification_filters".', 'error_description_translated': 'Superfluous field "notification_filters".'}]}
127.0.0.1 - - [26/Oct/2019 13:10:34] "GET /account_change_request?iban=XXXX&value=true HTTP/1.1" 200 -
127.0.0.1 - - [26/Oct/2019 13:10:35] "GET / HTTP/1.1" 200 -
GET v1/user/XXXX/monetary-account
127.0.0.1 - - [26/Oct/2019 13:10:37] "GET /update_accounts HTTP/1.1" 200 -
127.0.0.1 - - [26/Oct/2019 13:10:38] "GET / HTTP/1.1" 200 -

It doesn't work with any account, joint or not. The notification_filters object seems fine according to the documentation. Should another URL be used?

Add account name to IFTTT Ingredients

It would be nice if the account name (name of the account in bunq) could be added as a ingredient. Currently it's only possible to get the account IBAN (IBAN of the account in bunq).

I'm also using the ifttt2ynab service and it's not really comfortable to have the account IBAN as account name in YNAB.

Applets failing - too many requests

Splitting a big incoming transaction to multiple smaller amounts on different subaccounts using one applet for each small transaction triggering on the same incoming transaction gives the following error:

Action failure message: Too many requests. You can do a maximum of 5 calls per 3 second to this endpoint.

I hosted it on Google App Engine.

Which is that "endpoint"?

  • bunq api
  • google
  • ifttt

Can anything be done to change the allowance for the endpoint? Or otherwise follow the rule of 5 calls per 3 seconds?

At the moment I got some 20 applets triggering, which I could probably reduce, but I don't think I could make it 5 or lower.

Screenshot 2020-09-25 142233

IFTT plattform

Can you please update the process how to configure the IFTTT plattform in the wiki?
It seems they have changed thr process.
Thank you very much!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.