Is SoFi Credit Card supported?

Hi! Both my SoFi Checking and Savings accounts flow into Tiller but my SoFi Credit Card does not. I’ve tried re-adding my SoFi account to Tiller and still am seeing just the Checking and Savings, not the Credit Card. Is the SoFi Credit Card supported? Thank you!

1 Like

I’m having the same issue. Did some testing on MINT and it pulls the credit card data in. Has anyone have Sofi Credit Card Transactions working with Tiller?

1 Like

I haven’t been able to get this to work. I’ve submitted a request to the Tiller team.

For now, I’m syncing to Mint, exporting transactions from there, and importing transactions into Tiller.

1 Like

I sent a Tiller support request over on the issue and it appears like the Sofi Card is not supported at the moment. I’m hoping it will soon. I will try your mint solution.

I’m having the same issue. I’d love for SoFi credit card to be supported, but I am manually entering SoFi CC transactions. SoFi Bank accounts and investment accounts are integrated, but not Credit Card. Has SoFi credit card ever been integrated with Tiller?

SoFi credit cards are not supported at this time. It does look like the account type is in beta right now though so it seems our data provider, Yodlee, is working on it. We’re not sure when it’ll be working, and we don’t escalate service requests to them for beta account types or institutions.

My recommendation would be to go through the re-add steps for SoFi periodically without deleting the connection first and see if the credit card pulls in or if it’s pulled in but no data is flowing, just keep an eye on it and eventually it will probably start working.

1 Like

Several months later and still no SOFI credit integration. How long can their beta really take?

I really like Tiller, but between this and the deal with USAA recently, I might have to find another option after my paid year is up. Tiller cost too much money to be manually importing transactions when that is its main purpose. Especially when pretty much every other service imports without issue. I know I know…Plaid. But I am not paying Plaid, I am paying Tiller and Tiller isn’t delivering.

4 Likes

Welcome, @jmcdona6 :wave:

Sorry for the delay in support for the SoFi credit cards. We have no control over Yodlee’s timeline or development process.

We’ll have some news to share on USAA soon! Thanks for your patience. Hang tight a little longer.

Any updates on this issue?

Does Tiller use Yodlee exclusively or some mixture of Yodlee and Plaid? It looks like the SoFi card was added to Plaid two years ago.

Is there any way to automatically be notified when this is finally working? Can we submit a ticket to Yodlee or something?

It is November, 2023. I just rejoined Tiller, hoping that this issue had been solved. In fact, there is even a notice here that it HAS been solved. It has not.
Adding transactions manually gets old in a hurry, no matter how good the Tiller tool is otherwise.
I have two other accounts that won’t link, but I do not use them as much, so I could tolerate entering their transactions manually.
I am not going to specifically name the competitor, but there is a well known service that downloads ALL of my accounts, including T Mobile Money, which is pretty unusual, as well as all of the SoFi accounts, including savings vaults.
I guess I will probably discontinue this trial membership, but I will give it a couple days, in case I had missed something.
This is too bad. I do like Tiller, and the fact that it works directly with Excel sheets. But I am tired of it not being able to bring in something as common as the SoFi credit card.

Is there a resolution to this yet? I just discovered Tiller and it seems perfect in every way except for this flaw. I’d love to keep using it but will probably need to cancel if SoFi credit isn’t supported.

Still no support for SoFi credit cards which is our primary credit card which makes this a no go for us. Like others sad this is an amazing solution that ruled out due to this issue. I do think you for offering a trial so I could find this out before purchasing.

1 Like

:wave: @danny.hatheway, welcome!

Sorry about that. I am seeing that the credit card account type is in “beta” - wondering if it shows up for you at all after connecting SoFi? Or doesn’t even pull into Tiller?

Did not even show up sadly, SoFI banking and checking where a breeze though!

I’ve created a solution, but it’s not perfect and requires a few manual steps. It’s at least something while we wait for Yodlee to move Sofi CCs out of beta.

This Apps Script helps you import your .pdf Sofi CC statement into the “Transactions” tab of your Tiller Google Sheet template. The downside is you need to wait until the end of the month for the statement to be released before you can import the transactions (unless someone has created a script for scraping the Sofi CC transactions page to generate a .csv)

Hope this helps!

1 Like

Whoa! This is cool. I haven’t tried it out, but it looks really awesome! Would you consider sharing as a Show & Tell solution? Show & Tell - Tiller Community

1 Like

Sure I’ll head over there to post it.

I’ve actually modified the workflow to include a lot less steps. Now you can just paste a script into your console when you’re on the Sofi transactions page and paste the resulting CSV into your transactions.

Script to run in console on CC trx page. (Make sure to adjust variables to fit your needs)
/*
 * Run on your Sofi Credit Card transactions page to scrape transactions into a CSV that can be copied into your Tiller Spreadsheet's "Transactions" page\
 
 You may need to scroll to bottom and load more to get older transactions
 */

// Script will gather transactions until this date in Month-Day-Year format
const getUntilDate = "12/06/2023"
// Whatever you want to show up for "Account #"
const accountNumber = "xxxx1234"
// Sofi account name (name you want to use under "Account" in transaction)
const account = "Credit Card"
// Whatever you want to show up for "Institution"
const institution = "SoFi"

const untilDate = new Date(getUntilDate)
const today = new Date()

for (const h3 of document.querySelectorAll("h3")) {
    if (h3.textContent.trim() === "Transactions") {
        const txContainer = h3.parentNode.parentNode.children[1]
        // Pending, pending tx list, posted tx list
        if (txContainer.children.length === 3) {
            getTransactionsFromDiv(txContainer.children[2])
        }
    }
}

function getTransactionsFromDiv(parent) {
    const transactions = []
    for (const child of parent.children) {
        // Skip anything that isn't a trx list container
        if (child?.children?.[0].nodeName !== "DIV") {
            continue;
        }
        // Loop over trx list
        for (const item of child?.children) {
            // Skip anything that isn't a trx
            if (item?.children?.[0]?.children?.[0].nodeName !== "BUTTON") {
                continue;
            }
            const itemWrapper = item?.children?.[0]?.children?.[0]?.children?.[0]?.children?.[0]?.children?.[0]?.children
            const descAmountContainer = itemWrapper?.[0]
            const trxDate = new Date(itemWrapper?.[1]?.textContent)
            if (trxDate.getTime() < untilDate.getTime()) {
                continue;
            }
            const description = descAmountContainer?.children?.[0]?.textContent
            const amount = descAmountContainer?.children?.[1]?.textContent.replaceAll("$", "").replaceAll(",", "")
            const month = `${trxDate.getMonth() + 1}/1/${getShortYear(trxDate)}`
            const trxMonday = getMonday(trxDate)
            const week = `${trxMonday.getMonth() + 1}/${trxMonday.getDate()}/${getShortYear(trxMonday)}`
            const dateAdded = `${today.getMonth() + 1}/${today.getDate()}/${getShortYear(today)}`
            transactions.push([
                `${trxDate.getMonth() + 1}/${trxDate.getDate()}/${trxDate.getFullYear()}`,
                description,
                "", // Category
                amount,
                account,
                accountNumber,
                institution,
                month,
                week,
                "", // Transaction ID. You can modify this script to expand each trx and get the number, but this isn't usefulf for me
                "", // Account ID (used internally by Tiller)
                "", // Check Number
                description,
                dateAdded
            ])
        }
    }
    console.log(arrayToCSV(transactions))
}


function getMonday(d) {
    d = new Date(d);
    var day = d.getDay(),
        diff = d.getDate() - day + (day == 0 ? -6 : 1); // adjust when day is sunday
    return new Date(d.setDate(diff));
}

function getShortYear(d) {
    return d.getFullYear().toString().substr(2)
}

function arrayToCSV(arr, delimiter = ',') {
    return arr.map(v => v.map(x => `"${x}"`).join(delimiter)).join('\n');
}

Trouble with this solution is if they make changes to the page it will break it. Hopefully by then we can just use the auto importer

1 Like

Thanks well check it out again!

I had successfully used your script several times after discovering it. It certainly makes the SoFi credit card usable with Tiller. However, the last couple days (late March, 2024 and start of April, 2024), I am getting a new error that will not let me use it now. Is it still working for you?
Thanks, Paul Schroeder