# Q2

> Q2 through One

- Skill: `withoneai/q2` (Agent Skill)
- Install (CLI): `npx skillmds@latest add withoneai/q2`
- Raw SKILL.md: https://api.skillmd.com/api/skills/withoneai/q2/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: withoneai (https://skillmd.com/u/withoneai)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/withoneai/q2

---


# Q2 through One

Q2 offers an integrated digital banking platform enabling financial institutions to manage consumer, small-business, and commercial banking operations, including onboarding, payments, risk/fraud management, analytics, and embedded finance via a unified, scalable solution.

One exposes Q2 through four MCP tools. The table below carries real action ids from One's knowledge base, so for a common operation you can skip search and go straight to reading the action's parameters.

## How to run an action

1. Find the action in the table below, or call `search_one_platform_actions` with platform `q2` if it is not listed.
2. Call `get_one_action_knowledge` with the action id. Do this every time, including for actions in this table. The table gives you the id, not the parameters.
3. Call `execute_one_action` with parameters copied from that knowledge.

Never guess a parameter name, a body field, or an enum value. The knowledge has the real schema, and a guessed field is either a 400 or a silent write of the wrong thing.

## Before you start

Call `list_one_integrations` once and confirm Q2 is connected. If it is missing, the user has not connected it: say so and point them at https://app.withone.ai rather than reaching for raw HTTP.

Each connection carries an `access` field. If it reports `{"policy": "methods", "methods": ["GET"]}` the agent is read-only here, so plan a read-only answer instead of attempting a write that will be refused.

## Before a write

Creates, updates, deletes and sends land on a real Q2 account and cannot be recalled. State the action and the specific target in one line before the first write in a task, and let the user stop you. Reads need no confirmation.

## Actions

### Users

| Action | Method | Path | Action id |
|---|---|---|---|
| Add User (Enroll a User Under an Existing Customer) | POST | `/v2/AddUser` | `conn_mod_def::GJ6L8M7qudY::THIBkYwbQ4i46QE8VJVPmw` |
| Change a User’s Logon Name | PUT | `/v2/ChangeUserLogonName` | `conn_mod_def::GJ6L8dGozFI::fM7WZi_5TsKTSIsgAsuDIQ` |
| Change a User’s Role | PUT | `/v2/ChangeUserRole` | `conn_mod_def::GJ6L8cxHREQ::UGwSx0J8SWKuGKBv_ManUw` |
| Delete a User | DELETE | `/v2/DeleteUser/{{userId}}` | `conn_mod_def::GJ6L85EF_NA::LyNw1RScTSeXaCTy0HCKwQ` |
| Lookup a User | POST | `/v2/LookupUser` | `conn_mod_def::GJ6L-Z3WgV0::DSDCXlKhT2e1Lh7MriA5pQ` |
| Search for a User | POST | `/v2/SearchUser` | `conn_mod_def::GJ6L-i3SbdM::ZNLYb_pBRde7XmJF_S5DnA` |
| Unlock a User (by Logon Name) | POST | `/v2/UnlockUser/{{logonname}}` | `conn_mod_def::GJ6L-uYsykY::l_43oI2NRha22DCnpFmXNA` |

### AdminUsers

| Action | Method | Path | Action id |
|---|---|---|---|
| Get Admin User List | GET | `/v2/GetAdminUserList` | `conn_mod_def::GJ6L73dFT0s::okzCO56sTUaWrq7g2FJDyg` |
| Add Admin User | POST | `/v2/AddAdminUser` | `conn_mod_def::GJ6L7r0e8pA::d9zkYqsvTouN0fflzpTw6g` |
| Delete an Admin User | DELETE | `/v2/DeleteAdminUser/{{adminUserId}}` | `conn_mod_def::GJ6L7vqUyWw::Hb241SsvSGmMsp511BnyKg` |
| Disable an Admin User | POST | `/v2/DisableAdminUser` | `conn_mod_def::GJ6L74YxK0g::immK9dCKQ1CL7TZS9AJ_9Q` |
| Enable an Admin User | POST | `/v2/EnableAdminUser` | `conn_mod_def::GJ6L76-WLaU::Tr3vWUJgT1WmxaFkF-LAGQ` |
| Update an Admin User | PUT | `/v2/UpdateAdminUser` | `conn_mod_def::GJ6L8Eu4fgE::rjSiQLYiR-mLllAraqWAJQ` |

### OpenBankingPayments

| Action | Method | Path | Action id |
|---|---|---|---|
| Lookup Payment Status (Beta) | POST | `/v2/OpenBanking/Payment/LookupPaymentStatus` | `conn_mod_def::GJ6L_TBkNMI::6KRgzvAtTVy8-RQWJjn2vQ` |
| Make a Domestic Wire Payment (Open Banking) | POST | `/v2/OpenBanking/Payment/MakeDomesticWire` | `conn_mod_def::GJ6L_e1xT6Q::m5IgE-wURNK0sQiKkH4hWA` |
| Make ACH Payment (Beta) | POST | `/v2/OpenBanking/Payment/MakeACHPayments` | `conn_mod_def::GJ6L_hiX74A::73tDVs8NSdCH3X4koQXQYw` |
| Make an International Wire Payment (Open Banking) | POST | `/v2/OpenBanking/Payment/MakeInternationalWire` | `conn_mod_def::GJ6L_e6797o::9LC4dt7zQ5a0HxaZELVehw` |

### Customers

| Action | Method | Path | Action id |
|---|---|---|---|
| Delete a Customer | DELETE | `/v2/DeleteCustomer/{{customerId}}` | `conn_mod_def::GJ6L8waqDcQ::E8xJgzyqQvm7w3KbTcr8XQ` |
| Lookup a Customer | POST | `/v2/LookupCustomer` | `conn_mod_def::GJ6L-Y6e_to::bkZicMDlRCWS_BURgXatVg` |
| Search Customers | POST | `/v2/SearchCustomer` | `conn_mod_def::GJ6L-jEWS_M::u6MuYxdXTAeFge6Yehl2sg` |
| Update Customer Info | PUT | `/v2/UpdateCustomerInfo` | `conn_mod_def::GJ6L-uOifq8::Ff-iqr6WR0OkHfkjrI7fMg` |

### AchPayments

| Action | Method | Path | Action id |
|---|---|---|---|
| Authorize an ACH Payment | GET | `/v2/ACH/AuthorizePayment/{{paymentid}}` | `conn_mod_def::GJ6L7fNKDTo::O0GiZ8A_TEKz5VbEeNKv4g` |
| Get an ACH Payment | GET | `/v2/ACH/GetPayment/{{paymentid}}` | `conn_mod_def::GJ6L7jSWSjg::YKp1BW9wRH-YQWMCsAvaQw` |
| Make ACH Payment | POST | `/v2/ACH/MakePayment` | `conn_mod_def::GJ6L7fS6GAY::pZ5TfJaqRQiqxszCmNya1Q` |

### TacTargets

| Action | Method | Path | Action id |
|---|---|---|---|
| List TAC Targets | GET | `/v2/TacTargets` | `conn_mod_def::GJ6L98lX8L8::coDbYgkxT0SnpwddAZ0-zQ` |
| Add TAC Target | POST | `/v2/AddTacTarget` | `conn_mod_def::GJ6L8Mw85pk::_JlS_5hRS6-QOvoDTcs3yw` |
| Delete a TAC Target | DELETE | `/v2/DeleteTacTarget` | `conn_mod_def::GJ6L8wmf_yg::AcI0rweWQ8WVYtGhe0mNPw` |

### CustomSdkExtensions

| Action | Method | Path | Action id |
|---|---|---|---|
| Call a Custom SDK Extension (Custom Endpoint Passthrough) | POST | `/v2/Cust/{{extensionName}}` | `conn_mod_def::GJ6L8lGVHmk::FImrJrqlToK8mM_F0JHKrA` |
| Call a Custom SDK Extension (Passthrough) | PATCH | `/v2/Cust/{{extensionName}}` | `conn_mod_def::GJ6L8xCha9Y::43UquZbcSTawdWKgdw99dg` |
| Delete a Custom SDK Extension (Passthrough) | DELETE | `/v2/Cust/{{extensionName}}` | `conn_mod_def::GJ6L8wq4zf4::cDHyhicPQ_WLyGhRrKRF_Q` |

### Logons

| Action | Method | Path | Action id |
|---|---|---|---|
| Disable a User’s Logon | POST | `/v2/DisableLogon/{{logonname}}` | `conn_mod_def::GJ6L85YYfII::_B_GCRPCSmm2yZOYFICjWg` |
| Enable a User’s Logon | POST | `/v2/EnableLogon/{{logonname}}` | `conn_mod_def::GJ6L88MsUw4::yyDwh7z-RhGoVbXKbllgbw` |

### ExchangeRates

| Action | Method | Path | Action id |
|---|---|---|---|
| Get Exchange Rates | GET | `/v2/GetExchangeRates` | `conn_mod_def::GJ6L9iCwldY::j7vlZ72fTECN8G7QfQsQiA` |
| Import Exchange Rate | POST | `/v2/ImportExchangeRate` | `conn_mod_def::GJ6L-WltZzU::FqS-OmM5Te6sbSMZO7j2Iw` |

### PolicyData

| Action | Method | Path | Action id |
|---|---|---|---|
| Get Policy Data for an Entity | GET | `/v2/GetPolicyData` | `conn_mod_def::GJ6L9x078kU::OexS9PGlQwmfWBQdr4xtoQ` |
| Update Policy Data | PUT | `/v2/UpdatePolicyData` | `conn_mod_def::GJ6L-2gNamU::jSZ9bVDsRMygSOfnZJSpvQ` |

### InstantPayments

| Action | Method | Path | Action id |
|---|---|---|---|
| Create Credit Transfer (Instant Payments) | POST | `/v2/InstantPayments/CreateCreditTransfer` | `conn_mod_def::GJ6L_GGRMRY::epdD_cxPQCuGK-xNkGRUoQ` |
| Create Payment Request | POST | `/v2/InstantPayments/CreatePaymentRequest` | `conn_mod_def::GJ6L_ACSu84::0UwzNpfaQfaOn_MC6ijQQg` |

### TreasuryFulfillment

| Action | Method | Path | Action id |
|---|---|---|---|
| Get Pre-Draft Service Request Status | GET | `/v2/TreasuryFulfillment/CreateServiceRequest` | `conn_mod_def::GJ6L_p-sWoY::5QnUp9iwRZ-aOSrT-HZGJQ` |
| Create Treasury Fulfillment Service Request | POST | `/v2/TreasuryFulfillment/CreateServiceRequest` | `conn_mod_def::GJ6L_p-1KQM::KHtGKqNqQnCJkUdef0H_3g` |

### AchRecipients

| Action | Method | Path | Action id |
|---|---|---|---|
| Get ACH Recipients | GET | `/v2/ACH/GetRecipients` | `conn_mod_def::GJ6L7ewz6SM::3gjFc1iLTVGI4CYA7JO8ww` |
| Create ACH Recipient | POST | `/v2/ACH/CreateRecipient/` | `conn_mod_def::GJ6L7erQ4G0::JDSwZeoWR5Wao4fW5aFsFg` |

### MicroDeposits

| Action | Method | Path | Action id |
|---|---|---|---|
| Get Micro Deposits for a User | GET | `/v2/MicroDeposit/Get` | `conn_mod_def::GJ6L9lpVOOg::-8cI1MUgQk-1FF8fl8pBAw` |
| Create Micro Deposits | POST | `/v2/MicroDeposit/Create` | `conn_mod_def::GJ6L8lT_jeg::BrF0K6nGQvmvN2yZEaXckw` |

### OpenBankingPayment

| Action | Method | Path | Action id |
|---|---|---|---|
| Lookup Account History (Open Banking) | POST | `/v2/OpenBanking/Payment/LookupAccountHistory` | `conn_mod_def::GJ6L_OxLs8k::Yt8Il44HQFyhMFHxFa4hlA` |
| Lookup an Account Summary (Open Banking Payment) | POST | `/v2/OpenBanking/Payment/LookupAccountSummary` | `conn_mod_def::GJ6L_OiiEvg::vH7MiT4ERLqmHbK7fBZ-qw` |

### RestrictedEntitlementMode

| Action | Method | Path | Action id |
|---|---|---|---|
| Disable Restricted Entitlement Mode (Customer Level) | POST | `/v2/DisableRestrictedEntitlementMode` | `conn_mod_def::GJ6L86EpdK0::rSkdv52kSZephW5SIg6vkA` |
| Enable Restricted Entitlement Mode (Customer Level) | POST | `/v2/EnableRestrictedEntitlementMode` | `conn_mod_def::GJ6L86OZhqI::Wl05zBq1RHS4GUvXXsqm6Q` |

### BalanceAlerts

| Action | Method | Path | Action id |
|---|---|---|---|
| Get Balance Alerts | GET | `/v2/GetAllAlerts/Balance` | `conn_mod_def::GJ6L9V7gafU::zdfWm5DTRwO1zFJY3EIxxw` |
| Generate Balance Alerts | POST | `/v2/GenerateBalanceAlerts` | `conn_mod_def::GJ6L9GvIt0I::PeJAv5TvSv-tb6dn7ShmiA` |

### UserRoles

| Action | Method | Path | Action id |
|---|---|---|---|
| Get a Customer’s User Roles | GET | `/v2/GetUserRoles/{{customerId}}` | `conn_mod_def::GJ6L-HNKo4I::aZ595XFbS5i-1RDajn8c1w` |
| Add a User Role (for a Customer) | POST | `/v2/AddUserRole` | `conn_mod_def::GJ6L8NP-pyA::2Kb6RGBzRVKE1g4EnxXCeg` |

### TransactionAlerts

| Action | Method | Path | Action id |
|---|---|---|---|
| Get Transaction Alerts (Transaction History) | GET | `/v2/GetAllAlerts/Transaction` | `conn_mod_def::GJ6L9_cgyX8::zGLDupLkSJmLtqQ59e7rvg` |
| Generate Transaction Alerts | POST | `/v2/GenerateTransactionAlerts` | `conn_mod_def::GJ6L9FJivKk::kn7sUx14SxG1W_nfI-p3bg` |

### Audiences

| Action | Method | Path | Action id |
|---|---|---|---|
| Get an Audience's User Count | GET | `/v2/SMART/Audiences/{{audienceId}}/count` | `conn_mod_def::GJ6L_fsT5dg::s1RR4WeOT_qGUPI5CiwjKg` |
| Get an Audience’s Users | GET | `/v2/SMART/Audiences/{{audienceId}}/users` | `conn_mod_def::GJ6L_d9vsvU::bkrrAmc-SV2Fi2kIcKi4nA` |

### AccountAssociations

| Action | Method | Path | Action id |
|---|---|---|---|
| Add Account Association (Create a User’s Account Association) | POST | `/v2/AddAccountAssociation` | `conn_mod_def::GJ6L8FIYBpI::cA3HtkphT7-08fbtyAEIGA` |

### Subsidiaries

| Action | Method | Path | Action id |
|---|---|---|---|
| Create a Subsidiary (for a Company/Customer) | POST | `/v2/CreateSubsidiary` | `conn_mod_def::GJ6L8lDceaw::QR2l0AfFSEScldpkL-5spQ` |

### Enrollment

| Action | Method | Path | Action id |
|---|---|---|---|
| Create Enrollment (Customer, User, and Logon) | POST | `/v2/Enrollment` | `conn_mod_def::GJ6L9EQzwWk::e4eEZysOSl2NVjtwIgdR2w` |

### AccountDetails

| Action | Method | Path | Action id |
|---|---|---|---|
| Get Account Details | GET | `/v2/GetAccountDetails` | `conn_mod_def::GJ6L9FzMw-Y::T8rPU42HQ-a3jEsWKIM4IQ` |

### AccountHistory

| Action | Method | Path | Action id |
|---|---|---|---|
| Get Account History for a Host Account | GET | `/v2/GetAccountHistory/{{hostAccountId}}` | `conn_mod_def::GJ6L9YfWT0I::EbT7ZjoTQIquosEwMe4Kfg` |

### CurrencyCodes

| Action | Method | Path | Action id |
|---|---|---|---|
| Get Currency Codes | GET | `/v2/GetCurrencyCodes` | `conn_mod_def::GJ6L9Wiwrbo::ziN30kcXR4ePpZNTfmBMbA` |

### AlertAccounts

| Action | Method | Path | Action id |
|---|---|---|---|
| Get Alert Accounts | GET | `/v2/GetAlertAccounts` | `conn_mod_def::GJ6L9ZWzyfE::scRY_7MgTxyHBFGwB1I61w` |

### Accounts

| Action | Method | Path | Action id |
|---|---|---|---|
| Get Account List | GET | `/v2/GetAccountList` | `conn_mod_def::GJ6L9ai7v4w::WkAPDnjSRni3or1CaBbgOw` |

### Products

| Action | Method | Path | Action id |
|---|---|---|---|
| Get Products | GET | `/v2/GetProducts` | `conn_mod_def::GJ6L9zWLNRY::ZYYUM211QyeYCmrusSrblw` |

### UserLoginInfo

| Action | Method | Path | Action id |
|---|---|---|---|
| Get User Login Info | GET | `/v2/GetUserLoginInfo` | `conn_mod_def::GJ6L97LyLwM::lJUR3zlUTdyaOSi2u1dw0g` |

### StopPayments

| Action | Method | Path | Action id |
|---|---|---|---|
| Stop Payment | POST | `/v2/StopPayment` | `conn_mod_def::GJ6L-ta6ljs::guKjdMvDTXGw9vnYNCpEIw` |

### Transactions

| Action | Method | Path | Action id |
|---|---|---|---|
| Update Transaction Status | PUT | `/v2/UpdateTransactionStatus` | `conn_mod_def::GJ6L-2BG7h4::PT_ch76_Tmio255ZtjroVw` |

### DemographicInfo

| Action | Method | Path | Action id |
|---|---|---|---|
| Update Demographic Info | PUT | `/v2/UpdateDemographicInfo` | `conn_mod_def::GJ6L-234jdI::jIEIs8ZzTSiaTzBh6C4WxA` |

### MicroDeposit

| Action | Method | Path | Action id |
|---|---|---|---|
| Verify Micro Deposits for a User | POST | `/v2/MicroDeposit/Verify` | `conn_mod_def::GJ6L_BbNY9A::AlaoIt_zTBWxdFD5tDWIkA` |

### OpenBankingAccounts

| Action | Method | Path | Action id |
|---|---|---|---|
| Lookup a Customer’s Accounts (Beta) | POST | `/v2/OpenBanking/Payment/LookupAccounts` | `conn_mod_def::GJ6L_W2KO2A::PxAM1lcIQ6eHZUdXeACIdg` |

### Authenticate

| Action | Method | Path | Action id |
|---|---|---|---|
| Authenticate a User (Validate LoginName/Password) | POST | `/v2/Authenticate` | `conn_mod_def::GJ6MK1PoFY8::HuaeZObbT9Cd2NeNcwJRvw` |

### SmartTraits

| Action | Method | Path | Action id |
|---|---|---|---|
| Set a Trait for Multiple Users (Batch) | POST | `/v2/SMART/Traits/{{traitId}}/batch` | `conn_mod_def::GJ6L_rqTfW4::gQXGkJJXSUSlniWUNfT_MQ` |

### AdminNotes

| Action | Method | Path | Action id |
|---|---|---|---|
| Add Admin Note | POST | `/v2/AddAdminNote` | `conn_mod_def::GJ6L7rh1f-4::0gUujLWAR4-KeKTLLEVifw` |

### BrowserRegistrations

| Action | Method | Path | Action id |
|---|---|---|---|
| Flush Browser Registrations | POST | `/v2/FlushBrowserRegistrations` | `conn_mod_def::GJ6L9OUToO4::RI2Xr9B2QRifD2W8w83Nvg` |

### SuspectTransactionsGt

| Action | Method | Path | Action id |
|---|---|---|---|
| Decide on a Suspect Transaction (GT) | PUT | `/v2/DecideSuspectGT` | `conn_mod_def::GJ6L7rzV5dA::eLX8-LS5QZyY4RbZghocYw` |

### SecureMessages

| Action | Method | Path | Action id |
|---|---|---|---|
| Send Secure Message | POST | `/v2/SendSecureMessage` | `conn_mod_def::GJ6L-uY7oak::5yRBNe2jT2KZBD3lGHuRTg` |

### Oauth2Tokens

| Action | Method | Path | Action id |
|---|---|---|---|
| Get an OAuth2 Token (Client Credentials) | POST | `/v2/oauth2/token` | `conn_mod_def::GJ6L_AquI90::KOAmtw6TSemHkl__0Af-NQ` |

### Notifications

| Action | Method | Path | Action id |
|---|---|---|---|
| Send Notification | POST | `/v2/SendNotification` | `conn_mod_def::GJ6L-lHaYAA::AUXMCPs_SfS0BJE8VdqhFQ` |

### PinionMessages

| Action | Method | Path | Action id |
|---|---|---|---|
| Send a Pinion Message | POST | `/v2/SendPinionMessage` | `conn_mod_def::GJ6L-l2upKE::38TOzbjITkqHODxHY-pQgA` |

### VerisignTokens

| Action | Method | Path | Action id |
|---|---|---|---|
| Validate a Verisign Token for a User | POST | `/v2/ValidateToken` | `conn_mod_def::GJ6L_BDnUB8::GqjrcMlURg2-G0ml4hF0DA` |

### PasswordPolicy

| Action | Method | Path | Action id |
|---|---|---|---|
| Get Password Policy (Online Banking) | GET | `/v2/GetPasswordPolicy` | `conn_mod_def::GJ6L9uqu1t4::tVgget08QFarCqKmBtPpOg` |

### CsrAssist

| Action | Method | Path | Action id |
|---|---|---|---|
| Initiate a CSR Assist Session | POST | `/v2/CSRAssist` | `conn_mod_def::GJ6L8lXP8Mc::lbJFQX2ORXSdCwNRutJdKw` |

### CorporateAccess

| Action | Method | Path | Action id |
|---|---|---|---|
| Update Corporate Access (by Login Name) | PUT | `/v2/UpdateCorporateAccess` | `conn_mod_def::GJ6L-uSek7g::_Dss9Jk1QMiSIsThkpnvWg` |

### SsoIdentifiers

| Action | Method | Path | Action id |
|---|---|---|---|
| Update an End User’s SSO Identifier | PUT | `/v2/UpdateSSOIdentifier` | `conn_mod_def::GJ6L-3vPQmY::kVjedUdzStqh-3pL_I2E3Q` |

### GroupMover

| Action | Method | Path | Action id |
|---|---|---|---|
| Move Customers Between Groups (Group Mover) | PUT | `/v2/GroupMover` | `conn_mod_def::GJ6L-ItGcSI::WI5QKA0HRumqDW1l0fqUVA` |

### UserInfo

| Action | Method | Path | Action id |
|---|---|---|---|
| Update User Info | PUT | `/v2/UpdateUserInfo` | `conn_mod_def::GJ6L-1_pFwM::UUAo5V_4Q0eNE4rfhKKSTQ` |

### UserLogons

| Action | Method | Path | Action id |
|---|---|---|---|
| Add a User Logon (Under an Existing User) | POST | `/v2/AddUserLogon` | `conn_mod_def::GJ6L8RwcppQ::u1YnwwljR8S5Jeq1-j4mwQ` |

### SmartAudiences

| Action | Method | Path | Action id |
|---|---|---|---|
| List SMART Audiences | GET | `/v2/SMART/Audiences` | `conn_mod_def::GJ6L_onUIyg::N_LNJAgJScKlZbETrJRKQA` |

### Traits

| Action | Method | Path | Action id |
|---|---|---|---|
| Set a User’s Traits | POST | `/v2/SMART/Traits/users/{{userId}}` | `conn_mod_def::GJ6L_qMFakw::KjBFZGHYTuyMFnnsEg08lA` |

This lists 90 of 115 actions. For anything not here, call `search_one_platform_actions` with platform `q2`. The full catalog is at https://www.withone.ai/knowledge/q2.

## When a call fails

The error comes from Q2, not from One. A 400 or 422 means your parameters do not match the schema, so re-read the knowledge and fix the field. A 401 or 403 means the connection needs re-authorizing, which no retry will fix. A 404 means the id is not on this account. A 429 means slow down. Never retry a write more than once: the first attempt may have landed.

Full catalog: https://www.withone.ai/knowledge/q2

Integration knowledge by One (withone.ai), licensed under [One-Knowledge-1.0](https://www.withone.ai/licenses/knowledge). Attribution must be preserved in derivative works.

