Ruby on rails QBOv3 XML验证错误2500(引用Id无效)

Ruby on rails QBOv3 XML验证错误2500(引用Id无效),ruby-on-rails,ruby,quickbooks,quickbooks-online,Ruby On Rails,Ruby,Quickbooks,Quickbooks Online,我正在尝试使用quickbooks ruby gem在quickbooks上创建一个测试发票。注意,我在QB有一个测试帐户,它没有任何内容:发票、客户等。它是一个仅为测试目的而创建的新帐户。这是我的代码: service = Quickbooks::Service::Invoice.new service.company_id = current_user.company_id service.access_token = create_consumer qb_invoice = Quickb

我正在尝试使用quickbooks ruby gem在quickbooks上创建一个测试发票。注意,我在QB有一个测试帐户,它没有任何内容:发票、客户等。它是一个仅为测试目的而创建的新帐户。这是我的代码:

service = Quickbooks::Service::Invoice.new
service.company_id = current_user.company_id
service.access_token = create_consumer

qb_invoice = Quickbooks::Model::Invoice.new
qb_invoice.customer_id = 123

line_item = Quickbooks::Model::InvoiceLineItem.new
line_item.amount = 100
line_item.sales_item! do |detail|
  detail.unit_price = 100
  detail.quantity = 1
  detail.item_id = 1
end

qb_invoice.line_items << line_item

res = service.create qb_invoice
p res.id #exception!

def create_consumer
  OAuth::AccessToken.new(.....)
end
service=Quickbooks::service::Invoice.new
service.company\u id=当前用户.company\u id
service.access\u令牌=创建\u消费者
qb_invoice=Quickbooks::Model::invoice.new
qb_invoice.customer_id=123
行项目=Quickbooks::模型::InvoiceLineItem.new
行\项目金额=100
行\项目。销售\项目!详细说明|
详细信息:单价=100
细节。数量=1
detail.item_id=1
结束

qb_invoice.line_项目请检查您的帐户中是否存在客户(ID-123)和项目(ID-1)

如果没有,则使用apiexplorer/code创建这两个条目,并使用相应的对象ID

蜂房探险者-

EntityRef-

蜂房探险者-

参考-


谢谢

有一个菜单项叫做“客户”(不是客户)。就是这样,对吗?它的id是什么,我在哪里可以看到它?我猜这是在名为“nameId=1”的url中,对吗?客户和客户指的是同一件事(这取决于您在设置QBO帐户时选择的术语)。您可以从QB UI创建客户,并使用APIExplorer(调用customer REST endpoint)检索详细信息(包括ID)。您需要在invoice create API调用中使用该客户ID。感谢您的详细回答。然而,什么是itemID,我真的需要它吗?我只创建了一个客户,并通过API成功创建了一个新发票。我为什么不需要itemID呢?我怎么才能得到itemID呢?如果调用ITEM实体的getAll端点,那么您将得到XML/json形式的所有项作为响应。从那里您可以找到itemID。请参见发票主体单据-。
   METHOD = post
   RESOURCE = https://qb.sbfinance.intuit.com/v3/company/fdsfdsfdsfds123/invoice

<?xml version="1.0" encoding="utf-8"?>
<Invoice xmlns="http://schema.intuit.com/finance/v3" sparse="false">
  <Line>
    <Amount>100.0</Amount>
    <DetailType>SalesItemLineDetail</DetailType>
    <SalesItemLineDetail>
    <ItemRef>1</ItemRef>
    <UnitPrice>100.0</UnitPrice>
    <RatePercent>0.0</RatePercent>
    <Qty>1.0</Qty>
    </SalesItemLineDetail>
  </Line>
  <CustomerRef>123</CustomerRef>
  <TotalAmt>0.0</TotalAmt>
  <Balance>0.0</Balance>
  <Deposit>0.0</Deposit>
</Invoice>
RESPONSE CODE = 400

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<IntuitResponse xmlns="http://schema.intuit.com/finance/v3" time="2014-03-06T19:30:49.168-08:00">
  <Fault type="ValidationFault">
    <Error code="2500" element="">
      <Message>Invalid Reference Id</Message>
      <Detail>Invalid Reference Id : Something you're trying to use has been deleted. Check the fields with accounts, customers, items, vendors or employees.
      </Detail>
    </Error>
  </Fault>
</IntuitResponse>