使用 IPP SDK API 通过 .NET 将销售收据添加到 Quickbooks Online

Adding a sales receipt to Quickbooks Online with .NET using the IPP SDK API

这可能有一个非常明显的答案,但我一直在寻找它几个小时。

我正在尝试弄清楚如何使用 sdk api 创建销售收据,以将客户的付款链接到他的发票。据我所知,如果我不这样做,付款将存入帐户,但发票永远不会更新。

我能够阅读发票、进行信用卡或电子支票付款以及阅读客户记录。

但我正在尝试创建销售收据,但我不太确定该怎么做。

我可以读取客户记录,但如何将其添加到销售收据中?

这只是给我一个语法错误:

Customer customer = readCustomerUsingEmail(email);

SalesReceipt salesReceipt = new SalesReceipt();
salesReceipt.CustomerRef  = Customer;

当我将鼠标悬停在客户上方时,它显示 "Cannot implicitly convert type 'Intuit.Ipp.Data.Customer' to 'Intuit.Ipp.Data.ReferenceType'"。

编辑:好的。我现在使用 Payment 对象而不是 SalesReceipt 对象。

认为我已经找到答案,但我还没有运行。它只是不显示语法错误。

 ReferenceType customerRef = new ReferenceType()
        {
            Value = customerData.Customer.Id,
            name = customerData.Customer.DisplayName
        };
        payment.CustomerRef = customerRef;

你试图在这里做一些非常错误的事情:create the sales receipt using the sdk api, for linking a payment made by a customer to his invoice

那是不是销售收据的作用。

发票 - 表示客户欠你钱。

付款 - 表示客户向您付款 - 这实际上是发票的 "other side"。您创建发票以表明他们欠款,并创建付款以还清发票。

销售收据 - 表示客户都欠您钱 并且 已经付款。例如这本质上是将发票和付款合并为一个对象,供发票和付款同时发生时使用。

太棒了……

  1. 销售收据不能link到发票
  2. 未使用销售收据 link 付款到发票

您应该做的只是创建付款,然后link将付款直接记入发票。要创建付款,您至少需要提供:

  • 客户(CustomerRef 字段)
  • 总金额(TotalAmt 字段)
  • 一个 Line 对象(用于 link 发票)
  • Amount(如果是单张发票的付款,这通常等于 TotalAmt 字段
  • 一个LinkedTxn节点,其中一个link要支付的发票(TxnId字段)

在此处查看创建付款和其他文档的示例:https://developer.intuit.com/docs/api/accounting/payment

示例:

{
    "CustomerRef":
    {
        "value": "20",
        "name": "Red Rock Diner"
    },
    "TotalAmt": 55.00,
    "Line": [
    {
        "Amount": 55.00,
        "LinkedTxn": [
        {
            "TxnId": "69",
            "TxnType": "Invoice"
        }]
    }]
}

这里有大量示例代码:

还有 Payment 特有的: