cirillojon/Andromeda

Plaid Implementation Research/Investigation

Open

#215 opened on Jun 19, 2024

 (0 comments) (0 reactions) (9 assignees)TypeScript (0 forks)auto 404
backendfrontend: portalhelp wantedhigh prioritylong term goalquestion

Repository metrics

Stars
 (2 stars)
PR merge metrics
 (PR metrics pending)

Description

Currently we have a demo plaid integration on our finances page. It allows a user to connect their bank and then loads the account information to the page. (there are a few things that happen behind the scenes here using the 3 api endpoints listed here: https://github.com/cirillojon/Andromeda/tree/version/1.0.0/frontend/src/app/api/plaid)

^^ these apis are used to create the access token that we will use to get account data:

refer to the flow in this file of how the apis are called and how the data is used: https://github.com/cirillojon/Andromeda/blob/version/1.0.0/frontend/src/components/Dashboard/PlaidDashboard/PlaidDashboard.tsx


This task is a research task / a figure out what we need from plaid task / what we want to display on our financial page / what we want to take from plaid api response and store in db / do we need a plaid db table? will we link plaid access token to users table ? can we cache plaid data in browser instead, is this supposed to be done by caching the access token (as we do currently) ?

And more importantly, determining the relationship between a project's 'financial data' , the financial section, and what is to be displayed.

Longer team we also need to look into connecting with banks, the bank apis, processing payments. We can also look into pre-approval, identity verification, etc... (all services that are possible with plaid api)

In general I am just spitballing here -- there are a ton of questions that will need to be answered regarding this implementation


current demo plaid code location: https://github.com/cirillojon/Andromeda/tree/version/1.0.0/frontend/src/components/Dashboard/PlaidDashboard

sample response data that we are using to build demo page:

{
    "accounts": [
        {
            "account_id": "r3WqLkXn9kFqebelDjjmFNaQKPrnmLia4jaBn",
            "balances": {
                "available": 100,
                "current": 110,
                "iso_currency_code": "USD",
                "limit": null,
                "unofficial_currency_code": null
            },
            "mask": "0000",
            "name": "Plaid Checking",
            "official_name": "Plaid Gold Standard 0% Interest Checking",
            "persistent_account_id": "8cfb8beb89b774ee43b090625f0d61d0814322b43bff984eaf60386e",
            "subtype": "checking",
            "type": "depository"
        }
    ],
    "item": {
        "available_products": [
            "assets",
            "auth",
            "balance",
            "signal",
            "identity",
            "identity_match",
            "income_verification",
            "investments",
            "liabilities",
            "recurring_transactions",
            "statements",
            "transfer"
        ],
        "billed_products": [
            "transactions"
        ],
        "consent_expiration_time": null,
        "error": null,
        "institution_id": "ins_127991",
        "item_id": "aMrkEvJb9vUamPmypWW4Cw16pp3XMyC7lZbZv",
        "products": [
            "transactions"
        ],
        "update_type": "background",
        "webhook": ""
    },
    "request_id": "DAHpZkBilSAEBQn",
    "total_transactions": 0,
    "transactions": []
}

complete plaid postman collection: Plaid API Endpoints.postman_collection (1).json

plaid api docs: https://plaid.com/?utm_source=Google&utm_medium=paid&utm_campaign=DEPT_SEM_Google_Brand_ACQ_Performance_NAMER_US-CA_Core_CPA-ROAS_BAU_Phrase&utm_term=Core_KW-Phrase_plaid-financial-api&utm_content=plaid%20financial%20api&gad_source=1&gclid=CjwKCAjwg8qzBhAoEiwAWagLrECzxCRfNH9DMYpQFyX71azaTQohfhi6Zst9V_DLTEm1ON62k5qQLhoCPvYQAvD_BwE

current demo:

image

Contributor guide