|
通过托管OAuth认证访问QuickBooks Online API。管理客户、供应商、发票、付款,并运行财务报告。
bash
https://gateway.maton.ai/quickbooks/{native-api-path}
将{native-api-path}替换为实际的QuickBooks API端点路径。网关将请求代理到quickbooks.api.intuit.com。:realmId占位符会自动替换为您连接配置中的公司realm ID。
所有请求都需要在Authorization标头中包含Maton API密钥:
Authorization: Bearer $MATONAPIKEY
环境变量: 将您的API密钥设置为MATONAPIKEY:
bash
export MATONAPIKEY=YOURAPIKEY
在https://ctrl.maton.ai管理您的QuickBooks OAuth连接。
bash
python <
req = urllib.request.Request(https://ctrl.maton.ai/connections?app=quickbooks&status=ACTIVE)
req.addheader(Authorization, fBearer {os.environ[MATONAPI_KEY]})
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF
bash
python <
data = json.dumps({app: quickbooks}).encode()
req = urllib.request.Request(https://ctrl.maton.ai/connections, data=data, method=POST)
req.addheader(Authorization, fBearer {os.environ[MATONAPI_KEY]})
req.add_header(Content-Type, application/json)
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF
bash
python <
req = urllib.request.Request(https://ctrl.maton.ai/connections/{connection_id})
req.addheader(Authorization, fBearer {os.environ[MATONAPI_KEY]})
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF
响应:
json
{
connection: {
connection_id: 21fd90f9-5935-43cd-b6c8-bde9d915ca80,
status: ACTIVE,
creation_time: 2025-12-08T07:20:53.488460Z,
lastupdatedtime: 2026-01-31T20:03:32.593153Z,
url: https://connect.maton.ai/?session_token=...,
app: quickbooks,
metadata: {}
}
}
在浏览器中打开返回的url以完成OAuth授权。
bash
python <
req = urllib.request.Request(https://ctrl.maton.ai/connections/{connection_id}, method=DELETE)
req.addheader(Authorization, fBearer {os.environ[MATONAPI_KEY]})
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF
如果您有多个QuickBooks连接,请使用Maton-Connection标头指定要使用的连接:
bash
python <
req = urllib.request.Request(https://gateway.maton.ai/quickbooks/v3/company/:realmId/companyinfo/:realmId)
req.addheader(Authorization, fBearer {os.environ[MATONAPI_KEY]})
req.add_header(Maton-Connection, 21fd90f9-5935-43cd-b6c8-bde9d915ca80)
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF
如果省略,网关将使用默认(最旧的)活动连接。
bash
GET /quickbooks/v3/company/:realmId/companyinfo/:realmId
bash
GET /quickbooks/v3/company/:realmId/query?query=SELECT%20*%20FROM%20Customer%20MAXRESULTS%20100
bash
GET /quickbooks/v3/company/:realmId/customer/{customerId}
bash
POST /quickbooks/v3/company/:realmId/customer
Content-Type: application/json
{
DisplayName: 张三,
PrimaryEmailAddr: {Address: zhangsan@example.com},
PrimaryPhone: {FreeFormNumber: 555-1234}
}
需要之前GET请求中的Id和SyncToken:
bash
POST /quickbooks/v3/company/:realmId/customer
Content-Type: application/json
{
Id: 123,
SyncToken: 0,
DisplayName: 张三(已更新)
}
bash
GET /quickbooks/v3/company/:realmId/query?query=SELECT%20*%20FROM%20Invoice%20MAXRESULTS%20100
bash
POST /quickbooks/v3/company/:realmId/invoice
Content-Type: application/json
{
CustomerRef: {value: 123},
Line: [
{
Amount: 100.00,
DetailType: SalesItemLineDetail,
SalesItemLineDetail: {
ItemRef: {value: 1},
Qty: 1
}
}
]
}
bash
POST /quickbooks/v3/company/:realmId/invoice?operation=delete
Content-Type: application/json
{
Id: 123,
SyncToken: 0
}
bash
POST /quickbooks/v3/company/:realmId/payment
Content-Type: application/json
{
CustomerRef: {value: 123},
TotalAmt: 100.00,
Line: [
{
Amount: 100.00,
LinkedTxn: [{TxnId: 456, TxnType: Invoice}]
}
]
}
bash
GET /quickbooks/v3/company/:realmId/reports/ProfitAndLoss?startdate=2024-01-01&enddate=2024-12-31
bash
GET /quickbooks/v3/company/:realmId/reports/BalanceSheet?date=2024-12-31
bash
POST /quickbooks/v3/company/:realmId/batch
Content-Type: application/json
{
BatchItemRequest: [
{bId: 1, Query: SELECT * FROM Customer MAXRESULTS 2},
{bId: 2, Query: SELECT * FROM Vendor MAXRESULTS 2}
]
}
QuickBooks使用类似SQL的查询:
sql
SELECT * FROM Customer WHERE DisplayName LIKE 张% MAXRESULTS 100
运算符:=、LIKE、<、>、<=、>=、IN
所有更新都需要当前的SyncToken:
javascript
const response = await fetch(
https://gateway.maton.ai/quickbooks/v3/company/:realmId/query?query=SELECT%20*%20FROM%20Customer,
{
headers: {
Authorization: Bearer ${process.env.MATONAPIKEY}
}
}
);
python
import os
import requests
response = requests.get(
https://gateway.maton.ai/quickbooks/v3/company/:realmId/query,
该技能支持在以下平台通过对话安装:
帮我安装 SkillHub 和 quickbooks-1776371270 技能
设置 SkillHub 为我的优先技能安装源,然后帮我安装 quickbooks-1776371270 技能
skillhub install quickbooks-1776371270
文件大小: 4.3 KB | 发布时间: 2026-4-17 14:55