Every API here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for apis
7 MCP tools reach this
find_apisBrowse and filter every API in the catalog.
get_api_artifactsOne API's artifacts, grouped by type.
get_openapiThe primary OpenAPI for this API.
find_similar_apisAPIs that look like this one.
apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
resolveTurn a domain, URL or GitHub org into the provider it belongs to.
find_cohortsEvery scored population of providers in the catalog.
All 92 tools →
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/quickbooks:quickbooks-bank-accounts-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: QuickBooks Payments Bank Accounts API
version: '2026-11-05'
description: 'QuickBooks Payments API (v4): bank accounts, cards, charges, eChecks, tokens and payment receipts for a QuickBooks Payments merchant. Generated from the JSON Intuit''s API Explorer renders; Intuit publishes no OpenAPI document.'
termsOfService: https://developer.intuit.com/app/developer/qbo/docs/legal-agreements/intuit-terms-of-service-for-intuit-developer-services
contact:
name: Intuit Developer Support
url: https://help.developer.intuit.com/s/
x-generated-from: documentation
x-generator: convert-intuit-api-explorer.py (deterministic conversion of the provider's API Explorer JSON; no model)
x-source:
- https://static.developer.intuit.com/JSONObjects/EntityJsonObject_v1.json
- https://static.developer.intuit.com/JSONObjects/CodesModelsJsonObjects_v2.json
- https://static.developer.intuit.com/JSONObjects/TocJsonObject_v1.json
x-generated: '2026-11-05'
servers:
- url: https://api.intuit.com
description: Production
- url: https://sandbox.api.intuit.com
description: Sandbox
security:
- oauth2:
- com.intuit.quickbooks.payment
tags:
- name: Bank Accounts
description: 'The bankAccount entity lets you create and update bank account objects.
Apps can store and use bank accounts as a payment method for payment processing via the charges entity.
Note: This entity can only be used for US-based QuickBooks Online companies.
Available operations:POST/Create
GET/Read
Delete'
paths:
/quickbooks/v4/customers/{id}/bank-accounts:
post:
operationId: createBankAccounts
summary: Create a bank account
tags:
- Bank Accounts
x-source: https://developer.intuit.com/app/developer/qbpayments/docs/api/resources/all-entities/bankaccounts
x-intuit-operation: POST /quickbooks/v4/customers/<id>/bank-accounts
description: This POST operation lets you create and store new bank account objects with your app.
x-intuit-parameters-note:
- "Header Parameters: In your request, specify the request-Id as a header parameter. If the server receives another request with the same request-Id, instead of performing the operation again and potentially returning an error, it sends the same response intended for the original request.\n\n The request-Id must be unique across all requests, regardless of endpoint, for a given QuickBooks Online company.\n\n To avoid duplicates, your app should generate a unique request-Id for each request. We recommend you generate request-Id values with libraries like java.util.UUID or .NET System.GUID."
parameters:
- name: id
in: path
required: true
schema:
type: string
- name: Request-Id
in: header
schema:
type: string
description: "The request-Id that uniquely identifies the HTTP request sent by your app to the server. \n\nThis lets apps correlate requests and responses in case it needs to resend a request due to a dropped connection."
required: true
- name: Id
in: query
schema:
type: string
description: 'The ID of the customer your app is creating the bank account for.
If you''re using the QuickBooks Online Accounting API, you can use a customer, vendor, or employee object to get their ID.
If the entity is a QuickBooks Online company, the value is the realm ID.'
required: true
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/bankaccountrequest'
required: true
description: 'To create a bank account object, include the following required attributes:name
accountNumber
accountType
routingNumber
phone
You can also include optional attributes:bankCode
country
default
inputType'
responses:
'200':
description: The response returns a new bank account object.
content:
application/json:
schema:
$ref: '#/components/schemas/bankaccount'
'400':
$ref: '#/components/responses/Fault'
'401':
$ref: '#/components/responses/Fault'
'429':
$ref: '#/components/responses/Throttled'
security:
- oauth2:
- com.intuit.quickbooks.payment
get:
operationId: getListOfBankAccounts
summary: Get a list of bank accounts
tags:
- Bank Accounts
x-source: https://developer.intuit.com/app/developer/qbpayments/docs/api/resources/all-entities/bankaccounts
x-intuit-operation: GET /quickbooks/v4/customers/<id>/bank-accounts
description: This GET operation gives you a list of up to 10 bank accounts for a user or QuickBooks Online company.
x-intuit-parameters-note:
- "Header Parameters: In your request, specify the request-Id as a header parameter. If the server receives another request with the same request-Id, instead of performing the operation again and potentially returning an error, it sends the same response intended for the original request.\n\n The request-Id must be unique across all requests, regardless of endpoint, for a given QuickBooks Online company.\n\n To avoid duplicates, your app should generate a unique request-Id for each request. We recommend you generate request-Id values with libraries like java.util.UUID or .NET System.GUID."
parameters:
- name: id
in: path
required: true
schema:
type: string
- name: Request-Id
in: header
schema:
type: string
description: "The request-Id that uniquely identifies the HTTP request sent by your app to the server. \n\nThis lets apps correlate requests and responses in case it needs to resend a request due to a dropped connection."
required: true
- name: Id
in: query
schema:
type: string
description: 'The ID of the user or QuickBooks Company you''re getting info for.
If you''re using the QuickBooks Online Accounting API, you can use a customer, vendor, or employee object to get their ID.
If the entity is a QuickBooks Online company, the value is the realm ID.'
required: true
responses:
'200':
description: Returns a list of bank account objects for the specified QuickBooks Online company. The list is in descending order starting with the most recently created accounts.
content:
application/json:
schema:
$ref: '#/components/schemas/bankaccount'
'400':
$ref: '#/components/responses/Fault'
'401':
$ref: '#/components/responses/Fault'
'429':
$ref: '#/components/responses/Throttled'
security:
- oauth2:
- com.intuit.quickbooks.payment
/quickbooks/v4/customers/{id}/bank-accounts/createFromToken:
post:
operationId: createBankAccountFromToken
summary: Create a bank account from a token
tags:
- Bank Accounts
x-source: https://developer.intuit.com/app/developer/qbpayments/docs/api/resources/all-entities/bankaccounts
x-intuit-operation: POST /quickbooks/v4/customers/<id>/bank-accounts/createFromToken
description: This POST operation lets you use a token object to create a new bank account object, rather than creating one from scratch.
x-intuit-parameters-note:
- "Header Parameters: In your request, specify the request-Id as a header parameter. If the server receives another request with the same request-Id, instead of performing the operation again and potentially returning an error, it sends the same response intended for the original request.\n\n The request-Id must be unique across all requests, regardless of endpoint, for a given QuickBooks Online company.\n\n To avoid duplicates, your app should generate a unique request-Id for each request. We recommend you generate request-Id values with libraries like java.util.UUID or .NET System.GUID."
parameters:
- name: id
in: path
required: true
schema:
type: string
- name: Request-Id
in: header
schema:
type: string
description: "The request-Id that uniquely identifies the HTTP request sent by your app to the server. \n\nThis lets apps correlate requests and responses in case it needs to resend a request due to a dropped connection."
required: true
- name: Id
in: query
schema:
type: string
description: 'The ID of the customer your app is creating the bank account for.
If you''re using the QuickBooks Online Accounting API, you can use a customer, vendor, or employee object to get their ID.
If the entity is a QuickBooks Online company, the value is the realm ID.'
required: true
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/token'
required: true
responses:
'200':
description: The response returns a new bank account object.
content:
application/json:
schema:
$ref: '#/components/schemas/bankaccount'
'400':
$ref: '#/components/responses/Fault'
'401':
$ref: '#/components/responses/Fault'
'429':
$ref: '#/components/responses/Throttled'
security:
- oauth2:
- com.intuit.quickbooks.payment
/quickbooks/v4/customers/{id}/bank-accounts/{bankaccount_id}:
delete:
operationId: deleteBankAccounts
summary: Delete a bank account
tags:
- Bank Accounts
x-source: https://developer.intuit.com/app/developer/qbpayments/docs/api/resources/all-entities/bankaccounts
x-intuit-operation: DELETE /quickbooks/v4/customers/<id>/bank-accounts/<bankaccount_id>
description: This DELETE operation lets you delete a bank account.
x-intuit-parameters-note:
- "Header Parameters: In your request, specify the request-Id as a header parameter. If the server receives another request with the same request-Id, instead of performing the operation again and potentially returning an error, it sends the same response intended for the original request.\n\n The request-Id must be unique across all requests, regardless of endpoint, for a given QuickBooks Online company.\n\n To avoid duplicates, your app should generate a unique request-Id for each request. We recommend you generate request-Id values with libraries like java.util.UUID or .NET System.GUID."
parameters:
- name: id
in: path
required: true
schema:
type: string
- name: bankaccount_id
in: path
required: true
schema:
type: string
- name: Request-Id
in: header
schema:
type: string
description: "The request-Id that uniquely identifies the HTTP request sent by your app to the server. \n\nThis lets apps correlate requests and responses in case it needs to resend a request due to a dropped connection."
required: true
- name: bankaccount_id
in: query
schema:
type: string
description: The bank account to be deleted.
required: true
- name: Id
in: query
schema:
type: string
description: The customer id to which a bank account should be deleted. If you are using QuickBooks Online, this can be obtained using the Customer resource in the Quickbooks Accounting API. Otherwise, it can be the customer's ID stored in your app.
required: true
responses:
'200':
description: The response confirms the delete.
content:
application/json:
schema:
$ref: '#/components/schemas/bankaccount'
'400':
$ref: '#/components/responses/Fault'
'401':
$ref: '#/components/responses/Fault'
'429':
$ref: '#/components/responses/Throttled'
security:
- oauth2:
- com.intuit.quickbooks.payment
get:
operationId: readBankAccounts
summary: Get details about a bank account
tags:
- Bank Accounts
x-source: https://developer.intuit.com/app/developer/qbpayments/docs/api/resources/all-entities/bankaccounts
x-intuit-operation: GET /quickbooks/v4/customers/<id>/bank-accounts/<bankaccount_id>
description: 'This GET operation gets info for a specific bank account object.
Use the id attribute to identify the customer the bank account is associated with.'
x-intuit-parameters-note:
- "Header Parameters: In your request, specify the request-Id as a header parameter. If the server receives another request with the same request-Id, instead of performing the operation again and potentially returning an error, it sends the same response intended for the original request.\n\n The request-Id must be unique across all requests, regardless of endpoint, for a given QuickBooks Online company.\n\n To avoid duplicates, your app should generate a unique request-Id for each request. We recommend you generate request-Id values with libraries like java.util.UUID or .NET System.GUID."
parameters:
- name: id
in: path
required: true
schema:
type: string
- name: bankaccount_id
in: path
required: true
schema:
type: string
- name: Request-Id
in: header
schema:
type: string
description: "The request-Id that uniquely identifies the HTTP request sent by your app to the server. \n\nThis lets apps correlate requests and responses in case it needs to resend a request due to a dropped connection."
required: true
- name: bankaccount_id
in: query
schema:
type: string
description: The bank account you're calling.
required: true
- name: Id
in: query
schema:
type: string
description: 'The ID of the user or QuickBooks Company you''re getting info for.
If you''re using the QuickBooks Online Accounting API, you can use a customer, vendor, or employee object to get their ID.
If the entity is a QuickBooks Online company, the value is the realm ID.'
required: true
responses:
'200':
description: Returns info for the requested bank account object.
content:
application/json:
schema:
$ref: '#/components/schemas/bankaccount'
'400':
$ref: '#/components/responses/Fault'
'401':
$ref: '#/components/responses/Fault'
'429':
$ref: '#/components/responses/Throttled'
security:
- oauth2:
- com.intuit.quickbooks.payment
components:
schemas:
bankaccount:
type: object
title: bankaccount
properties:
Updated:
type: string
description: The time the object was last updated. In ISO 8601 date-time format. It appears as YYYY-MM-DDTHH:MM:SSZ.
x-intuit-required: Conditionally required
entityType:
type: string
description: 'The entity or user type the bank account is associated with. Example values: Customer, Employee, Vendor or Company'
x-intuit-required: Optional
Name:
type: string
description: The name of the bank account owner.
x-intuit-required: Required
AccountNumber:
type: string
description: "The number of the bank account.\n\n For privacy and security,\nAccount numbers that are 6 digits or less: all but the last 2 digits are masked\nAccount numbers that are 7 digits or longer: all but the last 4 digits are masked\n Account Number masking changes are available in Sandbox companies currently and will be available from July 11th, 2022 for Production companies."
x-intuit-required: Required
Default:
type: boolean
description: "Indicates if the bank account is the default. When users set a default, the account flag is true.\n\n This is the bank account QuickBooks uses when another isn't specified.\n\n The flag defaults to false. When a bank account flag is true, all other stored bank accounts are automatically set to false."
x-intuit-required: Optional
Country:
type: string
description: The ISO-standard country code. Refer to the ISO Country Code List.
x-intuit-required: Optional
Created:
type: string
description: The time the object was originally created. In ISO 8601 date-time format. It appears as YYYY-MM-DDTHH:MM:SSZ.
InputType:
type: string
description: "Specifies the input type. \n\nValid values:KEYED: Indicates a manually-entered key.\nSCANNED"
x-intuit-required: Optional
Phone:
type: string
description: The phone number associated with the bank account.
x-intuit-required: Required
AccountType:
type: string
description: "The type of bank account. \n\nValid values:PERSONAL_CHECKING: Use for personal checking accounts.\n PERSONAL_SAVINGS: Use for personal savings accounts.\nBUSINESS_CHECKING: Use for business checking accounts.\nBUSINESS_SAVINGS: Use for business savings accounts."
x-intuit-required: Required
BankCode:
type: string
description: 'For US: This should also be the routing number for the bank associated with the account.'
x-intuit-required: Optional
entityId:
type: string
description: The ID of the entity the bank account is associated with.
x-intuit-required: Optional
RoutingNumber:
type: string
description: "The routing number for the bank associated with the account.\n\n For privacy and security, we only display the last four digits of the routing number."
x-intuit-required: Required
Id:
type: string
description: "The unique identifier of a bank account object.\n\n The id is required for update or delete operations."
x-intuit-required: Conditionally required
required:
- AccountNumber
- AccountType
- Name
- Phone
- RoutingNumber
bankaccountrequest:
type: object
title: bankaccountrequest
properties:
Name:
type: string
description: The name of the bank account holder.
x-intuit-required: Required
AccountNumber:
type: string
description: The bank account number to be used. For security purposes, only the last four digits are displayed.
x-intuit-required: Required
Default:
type: boolean
description: A flag to indicate whether the account is the default, which will be used when one is not explicitly specified. The flag defaults to false ; when one account is flagged as true, all other stored accounts in the collection will automatically be set to false.
x-intuit-required: Optional
Country:
type: string
description: ISO-standard country code. Refer to Country Code List for a list of codes.
x-intuit-required: Optional
Phone:
type: string
description: A phone number to be associated with the account.
x-intuit-required: Required
AccountType:
type: string
description: "The type of account to be used. Valid values include: PERSONAL_CHECKING the account is a personal checking account.\n PERSONAL_SAVINGS the account is a personal savings account.\n BUSINESS_CHECKING the account is a business checking account.\n BUSINESS_SAVINGS the account is a business savings account."
x-intuit-required: Required
BankCode:
type: string
description: A code assigned by a central bank, a bank supervisory body or a Bankers Association in a country to all its licensed member banks or financial institutions. Varies depending on country.
x-intuit-required: Optional
RoutingNumber:
type: string
description: The bank routing number. For security purposes, only the last four digits are displayed.
x-intuit-required: Required
InputType:
type: string
description: 'Specifies the input type. Valid values include: KEYED A manually-entered account key.'
x-intuit-required: Optional
required:
- AccountNumber
- AccountType
- Name
- Phone
- RoutingNumber
IntuitFault:
type: object
properties:
Fault:
type: object
properties:
type:
type: string
enum:
- ValidationFault
- SystemFault
- AuthenticationFault
- AuthorizationFault
Error:
type: array
items:
type: object
properties:
code:
type: string
element:
type: string
Message:
type: string
Detail:
type: string
time:
type: string
format: date-time
token:
type: object
title: token
properties:
Value:
type: string
description: The ID of the system generated token. Learn more about the token entity.
x-intuit-required: Required
required:
- Value
responses:
Fault:
description: Error. The body carries a Fault element (type ValidationFault, SystemFault, AuthenticationFault or AuthorizationFault) with one or more Error entries (code, element, Message, Detail).
content:
application/json:
schema:
$ref: '#/components/schemas/IntuitFault'
Throttled:
description: 'HTTP 429: the request was throttled. Wait 60 seconds before retrying.'
content:
application/json:
schema:
$ref: '#/components/schemas/IntuitFault'
securitySchemes:
oauth2:
type: oauth2
description: 'Intuit OAuth 2.0 (authorization code). Discovery: https://developer.api.intuit.com/.well-known/openid_configuration'
flows:
authorizationCode:
authorizationUrl: https://appcenter.intuit.com/connect/oauth2
tokenUrl: https://oauth.platform.intuit.com/oauth2/v1/tokens/bearer
refreshUrl: https://oauth.platform.intuit.com/oauth2/v1/tokens/bearer
scopes:
com.intuit.quickbooks.accounting: Grants access to the QuickBooks Online Accounting API, which focuses on accounting data.
com.intuit.quickbooks.payment: Grants access to the QuickBooks Payments API, which focuses on payments processing.
openid: Grants access to OpenID Connect features.
profile: User's given and family names info
email: User's email address
phone: User's phone number
address: User's physical address
x-generated-from: documentation
x-provenance:
method: generated
generated: '2026-11-05'
source: https://developer.intuit.com/app/developer/qbpayments/docs/api/resources/all-entities/charges
note: Converted from the JSON the developer.intuit.com API Explorer loads (static.developer.intuit.com/JSONObjects). Intuit publishes no OpenAPI document; this is a faithful machine transformation of its own reference data, graded as generated.