Dwolla Plaid Integration funding-source endpoint returns invalid routingNumber

Hello,

I am currently building a plaid + dwolla integration following this guide here. After setting everything up and successfully being able to see a customer being added on my dashboard. I am having issues adding the funding-source to be Plaid. Instead of a success, I am getting the following error:

{
    "code": "ValidationError",
    "message": "Validation error(s) present. See embedded errors list for more details.",
    "_embedded": {
        "errors": [
            {
                "code": "Invalid",
                "message": "Routing number is invalid.",
                "path": "/routingNumber",
                "_links": {}
            }
        ]
    }
}

For simplicity, this is my post request url and body from Postman where I noticed the same issue:

url: https://api-sandbox.dwolla.com/customers/<customer_id>/funding-sources
{
  "plaidToken": "processor-sandbox-<rest of the token>",
  "name": "Jane Doe - Checking"
}

If I were to add a routingNumber and accountNumber with some dummy data, the request succeeds, however this seems incorrect.

Seems like I was able to narrow down the issue a bit further. The issue is related to the fact I am using custom sandbox on Plaid. I’ll add the custom sandbox data object below:

{
  "override_accounts": [
    {
      "type": "investment",
      "subtype": "brokerage",
      "holdings": [
        {
          "institution_price": 10,
          "institution_price_as_of": "2021-08-01",
          "cost_basis": 5.5,
          "quantity": 10,
          "currency": "USD",
          "security": {
            "ticker_symbol": "TSLA",
            "currency": "USD"
          }
        },
        {
          "institution_price": 168.32,
          "institution_price_as_of": "2021-08-01",
          "cost_basis": 165.12,
          "quantity": 5,
          "currency": "USD",
          "security": {
            "ticker_symbol": "AAPL",
            "currency": "USD"
          }
        }
      ],
      "investment_transactions": [
        {
          "date": "2021-07-01",
          "name": "buy stock",
          "quantity": 10,
          "price": 10,
          "fees": 20,
          "type": "buy",
          "currency": "USD",
          "security": {
            "ticker_symbol": "AAPL",
            "currency": "USD"
          }
        }
      ]
    },
    {
      "type": "depository",
      "subtype": "checking",
      "transactions": [
        {
          "date_transacted": "2019-10-01",
          "date_posted": "2019-10-03",
          "amount": 100,
          "description": "1 year Netflix subscription",
          "currency": "USD"
        },
        {
          "date_transacted": "2019-10-01",
          "date_posted": "2019-10-02",
          "amount": 100,
          "description": "1 year mobile subscription",
          "currency": "USD"
        }
      ],
      "identity": {
        "names": [
          "John Doe"
        ],
        "phone_numbers": [
          {
            "primary": true,
            "type": "home",
            "data": "4673956022"
          }
        ],
        "emails": [
          {
            "primary": true,
            "type": "primary",
            "data": "accountholder0@example.com"
          }
        ],
        "addresses": [
          {
            "primary": true,
            "data": {
              "country": "US",
              "city": "Malakoff",
              "street": "2992 Cameron Road",
              "postal_code": "14236",
              "region": "NY"
            }
          }
        ]
      }
    }
  ]
}```

Hi @Kevin_Tayah – Ah, you’re right; the issue here has to do with Plaid’s custom Sandbox data. Dwolla only supports the two default bank accounts (checking and savings) provided by Plaid which are accessed via the following Plaid test credentials:

username: user_good
password: pass_good

Hope that helps!

I actually was able to fix the issue while still using Sandbox data by changing the accountNumber and routingNumber. Is this solution okay? We have a specific use case where we would like to stick to sandbox data if we can.

Sure, that works! Just make sure to use a US Routing number (or 222222226) and an account number that is 4-17 digits in length.

1 Like