Production personal access token missing BANK_ACCOUNTS_WRITE for Bank Accounts API

I’m implementing Square Web Payments SDK + Plaid for ACH bank payments and Bank Accounts on File in Production.

Plaid authentication/tokenization is working, and my Production credential can read the Bank Accounts API, but POST /v2/bank-accounts requires BANK_ACCOUNTS_WRITE.

I checked my Production personal access token with the token status endpoint.

Present:

  • BANK_ACCOUNTS_READ
  • CUSTOMERS_WRITE
  • PAYMENTS_WRITE
  • PAYMENTS_READ

Missing:

  • BANK_ACCOUNTS_WRITE

I already used Replace on the Production Access Token in Developer Console → Credentials, updated the new token in Production, and verified that the new token is active. The new token still has the same 47 permissions and still does not include BANK_ACCOUNTS_WRITE.

Merchant and location are ACTIVE, US/USD. GET /v2/bank-accounts succeeds.

Square’s Bank Accounts API documentation says CreateBankAccount requires BANK_ACCOUNTS_WRITE.

How can BANK_ACCOUNTS_WRITE be enabled or provisioned for an existing Production Square application using a Production personal access token? Does the Bank Accounts API beta require Square to enable this permission on the application/account?

I can provide my Application ID and Merchant ID privately to Square staff if needed.

Have you tried calling CreateBankAccount endpoint? I was told that you’d be able to make the call successfully even though BANK_ACCOUNTS_WRITE access doesn’t seem to be returned when requesting scopes. This way, you should be able to POST /v2/bank-accounts.

That missing BANK_ACCOUNTS_WRITE permission usually requires explicit feature enablement or special vetting by Square for ACH/Bank Account APIs in Production. You’ll likely need to contact support directly with your Application ID.