我正在使用
xero-python
SDK 通过电子邮件向我的客户发送发票和贷方票据。发送发票/贷项通知单后,我希望在 Xero 中将其标记为已发送。我可以通过执行以下操作来对发票执行此操作:
updated_invoice = Invoice(sent_to_contact=True)
invoices = Invoices(invoices=[updated_invoice])
api_instance.update_invoice(TENANT_ID, invoice.invoice_id, invoices)
即使发票上有付款,这也没有问题。在 Xero 的历史记录中,它指出编辑是在付款后进行的:
日期 | 用户 | 行动 | 详情 |
---|---|---|---|
2024 年 11 月 14 日上午 10:13 | 系统生成 | 已编辑 | 通过 Xero API 从电子邮件测试收到 |
2024 年 11 月 14 日上午 10:12 | 系统生成 | 付费 | 2024 年 11 月 14 日收到 Joe Morgan 的付款,金额为 11.05。此发票已全额支付 |
但是,当我尝试将其复制到贷方票据时,我收到以下错误 -
This document cannot be edited as it has a payment or credit note allocated to it
。
下面的代码遵循 Python API 文档:
updated_credit_note = CreditNote(sent_to_contact=True)
credit_notes = CreditNotes(credit_notes=[updated_credit_note])
api_instance.update_credit_note(TENANT_ID, credit_note.credit_note_id, credit_notes)
阅读完文档后,我明白这可能是预期的行为,因为信用票据是付款的。这篇 2011 年的 uservoice post 指出,发票和贷方票据只能在之前被标记为已付款,这也是 GUI 处理它的方式。不过,我已经演示了您可以在付款后将发票标记为通过 API 发送。付款后,还可以在 GUI 中将贷方票据标记为已发送。
这是 API 的限制吗?如果是,是否有解决方法?或者我在尝试更新贷方票据时是否进行了错误的 API 调用?
API 已更新,以便您可以编辑已付款的 ACCREC 发票,但这尚未扩展到 ACCPAY 发票或任何类型的贷方票据