Coinbase Advanced Trading API下单提示‘account is not available’错误求助
Coinbase Advanced Trading API下单返回400错误:account is not available
开发加密货币交易机器人时,调用Coinbase Advanced Trading API的获取/列出账户接口可正常返回数据,但调用下单接口时始终返回400错误,提示account is not available。
代码示例
import requests import json import uuid def place_order(symbol, side, amount, price=None): url = 'https://api.coinbase.com/api/v3/brokerage/orders' headers = { 'Authorization': 'Bearer '+encryption_build.build_jwt( 'POST api.coinbase.com/api/v3/brokerage/orders', api_key, api_secret), 'Content-Type': 'application/json' } client_order_id = uuid.uuid4() try: # Order details order_data = { "client_order_id": str(client_order_id), "product_id": symbol, "side": side, "order_configuration": { "market_market_ioc": { "base_size": str(amount) } }, "retail_portfolio_id": "41864a16-1fd4-50bb-a633-278d9c39f846" } res = requests.post(url=url, headers=headers, data=json.dumps(order_data)) print(res.json()) # 补充打印响应便于调试 except Exception as e: print(f"An error occurred: {e}") place_order('BTC-USD', 'SELL', amount=0.01)
返回错误
{ "error":"INVALID_ARGUMENT", "error_details":"account is not available", "message":"account is not available" }
补充信息
- API密钥已配置查看/交易权限,List Accounts接口可正常返回我的Coinbase账户,包含活跃的BTC账户和CAD法定货币账户。
- 无论是否指定
retail_portfolio_id,或是用Postman直接测试,都会返回相同错误。
Postman测试请求详情:
POST https://api.coinbase.com/api/v3/brokerage/orders 400 111 ms POST /api/v3/brokerage/orders HTTP/1.1 Content-Type: application/json Authorization: Bearer eyJhbGciOiJFUzI1NiIsImtpZCI6Im9yZ2FuaXphdGlvbnMvNjUwYjZhYjEtMTk2My00ZTQ1LThhYWMtNmUyYTdkNGU0MmQxL2FwaUtleXMvOTg0ZTE4ZjMtZDEzZi00NjllLTk3ZDItNTNkZDEzYzM1NDJhIiwibm9uY2UiOiJlODE3MmZmZDZjMzQ3ZDdhNzRjZDk3YWFlNmJkZTEzZTYyZWY5ZTk3ZjEyZTBlOTU4NTgwNzMyMzUwZTBlMmFiIiwidHlwIjoiSldUIn0.eyJzdWIiOiJvcmdhbml6YXRpb25zLzY1MGI2YWIxLTE5NjMtNGU0NS04YWFjLTZlMmE3ZDRlNDJkMS9hcGlLZXlzLzk4NGUxOGYzLWQxM2YtNDY5ZS05N2QyLTUzZGQxM2MzNTQyYSIsImlzcyI6ImNkcCIsIm5iZiI6MTcyMDU2MTE2MSwiZXhwIjoxNzIwNTYxMjgxLCJ1cmkiOiJQT1NUIGFwaS5jb2luYmFzZS5jb20vYXBpL3YzL2Jyb2tlcmFnZS9vcmRlcnMifQ.0ECu5nM8XTTLv7caGPxSBmoVUDoqW-z07z4Jz8wDljjIf2rreGjZ-L-ZAzMcDMU8FafSEQeo81FExUkUe2TVww User-Agent: PostmanRuntime/7.39.0 Accept: */* Postman-Token: 9506a059-e326-402b-8a4f-7aefcba39eaf Host: api.coinbase.com Accept-Encoding: gzip, deflate, br Connection: keep-alive Content-Length: 231 Cookie: __cf_bm=wG1twa3RotRq8PB5plk5UPsC8Luskeyddh9famNqHE4-1720561189-1.0.1.1-lWThs07H99ZxAB78K2ZUdY.4aDP0LEg49rLxEqPyrbL2ivpjLLQFKbsSMcieMCZ.eVdyusgBCyVspRfrdP.5LQ; cb_dm=16c8bf71-6e14-4c79-8c05-83251661ce3b {"client_order_id": "b372a61a-7585-4dd1-bb6c-f5990967412b", "product_id": "BTC-USD", "side": "BUY", "order_configuration": {"market_market_ioc": {"base_size": "0.01"}}, "retail_portfolio_id": "d641518f-dd81-49fc-96d1-ce1e782f697f"} HTTP/1.1 400 Bad Request Date: Tue, 09 Jul 2024 21:40:17 GMT Content-Type: application/json; charset=utf-8 Content-Length: 108 Connection: keep-alive access-control-allow-headers: Content-Type, Accept, Second-Factor-Proof-Token, Client-Id, Access-Token, X-Cb-Project-Name, X-Cb-Is-Logged-In, X-Cb-Platform, X-Cb-Session-Uuid, X-Cb-Pagekey, X-Cb-Ujs, Fingerprint-Tokens, X-Cb-Device-Id, X-Cb-Version-Name access-control-allow-methods: GET,POST,DELETE,PUT access-control-allow-private-network: true access-control-expose-headers: access-control-max-age: 7200 Cache-Control: no-store strict-transport-security: max-age=31536000; includeSubDomains; preload trace-id: 7311873497407553797 trace-id: 7311873497407553797 vary: Origin x-content-type-options: nosniff x-dns-prefetch-control: off x-download-options: noopen x-frame-options: SAMEORIGIN x-xss-protection: 1; mode=block x-envoy-upstream-service-time: 51 CF-Cache-Status: DYNAMIC Server: cloudflare CF-RAY: 8a0b78b7bf7caca0-YYZ {"error":"INVALID_ARGUMENT","error_details":"account is not available","message":"account is not available"}
期望结果:调用下单接口后返回200状态码,订单在Coinbase端处于待处理或已成交状态。网上相关资料极少,求解决思路。
内容的提问来源于stack exchange,提问作者Miko
相关产品推荐
相关产品推荐

