> For the complete documentation index, see [llms.txt](https://docs.sfox.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.sfox.com/connect/rest-api/payments/amend-plaid-processors.md).

# Amend Plaid Processors

Saves bank account information for your sFOX account

<table data-header-hidden><thead><tr><th width="74.8046875" align="center"></th><th></th></tr></thead><tbody><tr><td align="center"><mark style="color:purple;"><strong>PUT</strong></mark> </td><td>https://api.sfox.com/v1/bank-accounts/${BANK_ACCOUNT_ID}/plaid-processors</td></tr></tbody></table>

Modify the Plaid processors associated with a bank account.

***

## Request

{% hint style="info" %}
**Authentication:** This endpoint requires a [User Auth Token](/connect/rest-api/end-users/create-user-auth-token.md) for authentication. Requests using your Connect API Key will be rejected.
{% endhint %}

### Path Parameters

<table><thead><tr><th width="180.68359375">Name</th><th width="74.7265625">Type</th><th>Description</th></tr></thead><tbody><tr><td><strong><code>BANK_ACCOUNT_ID</code></strong> <mark style="color:red;">required</mark></td><td>string</td><td>The ID of the end user's bank account (<code>id</code> from <a href="/connect/rest-api/payments/get-bank-account.md">Get Bank Account</a>).</td></tr></tbody></table>

### Body Parameters

<table><thead><tr><th width="201.9609375">Name</th><th width="88.51171875">Type</th><th>Description</th></tr></thead><tbody><tr><td><strong><code>data</code></strong> <mark style="color:red;">required</mark></td><td>[object]</td><td>The Plaid <code>processor_token</code>s and associated processors</td></tr><tr><td>    <strong><code>processor</code></strong> <mark style="color:red;">required</mark></td><td>string</td><td>The processor associated with this <code>token</code>.<br><br><em>Possible values: <code>sfox</code>, <code>dwolla</code></em></td></tr><tr><td>    <strong><code>token</code></strong> <mark style="color:red;">required</mark></td><td>string</td><td>The <code>processor_token</code> retrieved from Plaid.</td></tr></tbody></table>

### Example Requests

{% tabs %}
{% tab title="Shell" %}
{% code overflow="wrap" %}

```shell
#Update bank account with new sFOX and Dwolla processor tokens
curl --location --request PUT 'https://api.sfox.com/v1/bank-accounts/${BANK_ACCOUNT_ID}/plaid-processors' \
  -H 'Content-type: application/json' \
  -H "Authorization: Bearer ${USER_AUTH_TOKEN}" \
  -d '{ 
      "data": [
        {
          "processor": "sfox",
          "token": "${SFOX_PLAID_PROCESSOR_TOKEN}"
        },
        {
          "processor": "dwolla",
          "token": "${DWOLLA_PLAID_PROCESSOR_TOKEN}"
        }
      ]
   }'

#Update bank account with new sFOX processor token
curl --location --request PUT 'https://api.sfox.com/v1/bank-accounts/${BANK_ACCOUNT_ID}/plaid-processors' \
  -H 'Content-type: application/json' \
  -H "Authorization: Bearer ${USER_AUTH_TOKEN}" \
  -d '{ 
      "data": [{
        "processor": "sfox",
        "token": "${SFOX_PLAID_PROCESSOR_TOKEN}"
      }]
   }'
```

{% endcode %}
{% endtab %}

{% tab title="NodeJS" %}
{% code overflow="wrap" %}

```javascript
//Update bank account with new sFOX and Dwolla processor tokens
const axios = require('axios');

const payload = JSON.stringify({
    "data": [
      {
        "processor": "sfox",
        "token": "${SFOX_PLAID_PROCESSOR_TOKEN}"
      },
      {
        "processor": "dwolla",
        "token": "${DWOLLA_PLAID_PROCESSOR_TOKEN}"
      }
    ]
})

const config = {
  method: 'put',
  url: 'https://api.sfox.com/v1/bank-accounts/${BANK_ACCOUNT_ID}/plaid-processors',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': `Bearer ${process.env.USER_AUTH_TOKEN}`
  },
  data: data
}

axios(config)
  .then(response => {
    console.log(response.status)
    console.log(response.data)
  }).catch(err => {
    console.error(err.response.status)
    console.error(err.response.data)
  });


  
//Update bank account with new sFOX processor token
const axios = require('axios');

const payload = JSON.stringify({
    "data": [
      {
        "processor": "sfox",
        "token": "${SFOX_PLAID_PROCESSOR_TOKEN}"
      }
    ]
})

const config = {
  method: 'put',
  url: 'https://api.sfox.com/v1/bank-accounts/${BANK_ACCOUNT_ID}/plaid-processors',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': `Bearer ${process.env.USER_AUTH_TOKEN}`
  },
  data: data
}

axios(config)
  .then(response => {
    console.log(response.status)
    console.log(response.data)
  }).catch(err => {
    console.error(err.response.status)
    console.error(err.response.data)
  });
```

{% endcode %}
{% endtab %}

{% tab title="Python" %}

```python
#Update bank account with new sFOX and Dwolla processor tokens
import requests
import json

url = "https://api.sfox.com/v1/bank-accounts/${BANK_ACCOUNT_ID}/plaid-processors"

payload = json.dumps({
  "data": [
      {
        "processor": "sfox",
        "token": "${SFOX_PLAID_PROCESSOR_TOKEN}"
      },
      {
        "processor": "dwolla",
        "token": "${DWOLLA_PLAID_PROCESSOR_TOKEN}"
      }      
  ]
})
headers = {
  'Content-Type': 'application/json',
  'Authorization': 'Bearer ${USER_AUTH_TOKEN}'
}

response = requests.request("PUT", url, headers=headers, data=payload)

print(response.text)


#Update bank account with new sFOX processor token
import requests
import json

url = "https://api.sfox.com/v1/bank-accounts/${BANK_ACCOUNT_ID}/plaid-processors"

payload = json.dumps({
  "data": [{
    "processor": "sfox",
    "token": "${SFOX_PLAID_PROCESSOR_TOKEN}"
  }]
})
headers = {
  'Content-Type': 'application/json',
  'Authorization': 'Bearer ${USER_AUTH_TOKEN}'
}

response = requests.request("PUT", url, headers=headers, data=payload)

print(response.text)
```

{% endtab %}
{% endtabs %}

## Response

### Response Body

<table><thead><tr><th width="284">Name</th><th width="105">Type</th><th>Description</th></tr></thead><tbody><tr><td><strong><code>data</code></strong></td><td>[object]</td><td>The Plaid <code>processor_token</code>s and associated processors</td></tr><tr><td>    <strong><code>processor</code></strong></td><td>string</td><td>The processor associated with the token that was processed.<br><br><em>Possible values: <code>sfox</code>, <code>dwolla</code></em></td></tr><tr><td>    <strong><code>status</code></strong></td><td>string</td><td>The status of processing the token.</td></tr><tr><td>    <strong><code>bank_account_id</code></strong></td><td>string</td><td>The ID of the associated bank account. (<code>id</code> from <a href="/connect/rest-api/payments/get-bank-account.md">Get Bank Account</a>)</td></tr><tr><td>    <strong><code>date_added</code></strong></td><td>string</td><td>Date-time the token was added.</td></tr><tr><td>    <strong><code>date_updated</code></strong></td><td>string</td><td>Date-time the token was last updated.</td></tr></tbody></table>

### Responses

<details>

<summary><mark style="color:green;">201</mark>: Created</summary>

sFOX and Dwolla p-tokens processed successfully

{% code overflow="wrap" %}

```json
{
    "data": [
        {
            "processor": "sfox",
            "status": "created",
            "bank_account_id": "05a59670-e7c2-4611-a356-d20cae93e939",
            "date_added": "2025-05-14T01:55:35.664Z",
            "date_updated": "2025-05-14T01:55:35.664Z"
        },
        {
            "processor": "dwolla",
            "status": "created",
            "bank_account_id": "05a59670-e7c2-4611-a356-d20cae93e939",
            "date_added": "2025-05-14T01:55:38.786Z",
            "date_updated": "2025-05-14T01:55:38.786Z"
        }
    ]
}
```

{% endcode %}

sFOX p-token successfully processed

{% code overflow="wrap" %}

```json
{
    "data": [
        {
            "processor": "sfox",
            "status": "created",
            "bank_account_id": "05a59670-e7c2-4611-a356-d20cae93e939",
            "date_added": "2025-05-14T01:55:35.664Z",
            "date_updated": "2025-05-14T01:55:35.664Z"
        }
    ]
}
```

{% endcode %}

</details>

<details>

<summary><mark style="color:red;">422</mark>: Unprocessable Entity</summary>

Active bank account is linked to this end user's account. To link a new bank account, [remove the current bank account](/connect/rest-api/payments/delete-bank-account.md) and try again.

{% code overflow="wrap" %}

```json
{
    "error": "could not process your sfox processor token: This account already has a bank account linked to it that is active"
}
```

{% endcode %}

sFOX p-token not included in a request with a Dwolla p-token.

{% code overflow="wrap" %}

```json
{
    "error": "At least one sfox processor token is required if a dwolla processor token is given"
}
```

{% endcode %}

</details>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.sfox.com/connect/rest-api/payments/amend-plaid-processors.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
