【问题标题】:Xero API: Getting an error "The PurchasesAccountId account is invalid" when creating new ItemsXero API:创建新项目时出现错误“PurchaseAccountId 帐户无效”
【发布时间】:2020-05-21 03:32:13
【问题描述】:

我只是想创建新项目,只是在您的示例应用程序上复制了语法,但我似乎无法创建新项目,我看不出究竟是什么错误,提前感谢您的帮助!

请注意,我使用的是试用版 xero 帐户,但不确定是不是这样。

我使用 xero-node 来使用 xero api。

const Config = use('Config')
const xeroNode = require('xero-node')
const xero = new xeroNode.XeroClient({
  clientId: Config.get('xero.client_id'),
  clientSecret: Config.get('xero.client_secret'),
  redirectUris: [Config.get('xero.redirectUri')],
  scopes: Config.get('xero.scopes').split(" ")
})

try {
    const item1 = {
      code: "Foo" + '123',
      name: "Bar",
      purchaseDetails: {
        unitPrice: 375.5000,
        taxType: "NONE",
        accountCode: "500"
      },
      salesDetails: {
        unitPrice: 520.9900,
        taxType: "NONE",
        accountCode: "400",
      }
    }

    const newItems = new xeroNode.Items()
    newItems.items = [item1]

    const itemCreateResponse = await xero.accountingApi.createItems(xero.tenants[0].tenantId, newItems)
  } catch (error) {
    console.log(error.response.toJSON())
  }

这是响应的正文(error.response.toJSON().body):

这里是验证错误(error.response.toJSON().body.ValidationErrors):

[ { Message: 'The PurchasesAccountId account is invalid.' } ]

【问题讨论】:

  • 您的试用组织中是否真的有代码为“400”和“500”的帐户?
  • 同样在文档中,AccountCode 有一个大写字母 A。这会造成麻烦吗?我发现在 VB 中解析 Xero 的 JSON 响应时,它们是区分大小写的。也就是说,UnitPrice 也是大写的。

标签: node.js adonis.js xero-api


【解决方案1】:

发生此错误的原因有多种:

  • 帐户不存在
  • 帐户已存档
  • 该帐户是跟踪库存的专用库存资产帐户。资产账户跟踪您手头股票的价值,因此不应用于交易。 PurchasesAccountID 应该是专用的 AP 帐户。

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-09
    • 1970-01-01
    • 2014-06-07
    • 2020-02-09
    • 2019-04-20
    • 2017-07-29
    • 2015-12-09
    相关资源
    最近更新 更多