如何向 Xero 添加发票?

Posted

技术标签:

【中文标题】如何向 Xero 添加发票?【英文标题】:How can I add an invoice to Xero? 【发布时间】:2018-11-09 21:50:35 【问题描述】:

我设法添加了一个联系人,但是当我尝试添加发票时,我收到一条错误消息“发生验证异常”。对于导致此错误的原因,我将不胜感激。

private void button1_Click(object sender, EventArgs e)

    try
    
        /// first create an instance of the Xero API
        var api = new Xero.Api.Example.Applications.Private.Core(false);

        Contact newContact = new Contact();
        newContact.Name = "Orac"; 
        Invoice newInvoice = new Invoice();
        newInvoice.Contact = new Contact();
        newInvoice.Contact = newContact;
        newInvoice.Date = System.DateTime.Now;
        newInvoice.DueDate = System.DateTime.Now.AddMonths(1);
        newInvoice.Status = Xero.Api.Core.Model.Status.InvoiceStatus.Authorised;
        newInvoice.Type = Xero.Api.Core.Model.Types.InvoiceType.AccountsReceivable;
        List<LineItem> lines = new List<LineItem>();
        LineItem li = new LineItem();
        li.LineAmount = Convert.ToDecimal("200.00");
        li.Quantity = Convert.ToDecimal("1.0000");
        li.ItemCode = "100";
        li.Description = "Webdev inv test";
        li.AccountCode = "200";
        li.UnitAmount = Convert.ToDecimal("50.00");
        lines.Add(li);
        newInvoice.LineItems = lines;

        // call the API to create the contact
        api.Invoices.Create(newInvoice);
        //api.Contacts.Create(newContact);
    
    catch (Exception ex)
    
        MessageBox.Show(ex.Message);
    

【问题讨论】:

【参考方案1】:

保留创建请求的结果 - 例如

var result = api.Invoices.Create(newInvoice);

...并检查结果的错误和警告属性以确定您的请求有什么问题。

【讨论】:

为此,必须将 summariseErrors 设置为 false。默认情况下是这样。 var createdInvoice = api.Invoices.SummarizeErrors(false).Create(newInvoice); if (createdInvoice.ValidationStatus == Xero.Api.Core.Model.Status.ValidationStatus.Error) foreach (var message in createdInvoice.Errors) Console.WriteLine("验证错误:" + message.Message); 【参考方案2】:

抛出的异常类型是 ValidationException。要么专门捕获该类型,要么强制转换捕获的泛型异常,然后检查 ValidationErrors 属性

【讨论】:

以上是关于如何向 Xero 添加发票?的主要内容,如果未能解决你的问题,请参考以下文章

向 Ubercart 发票添加自定义字段

XeroAPI - 发票附件访问被禁止

向 NetSuite PDF 发票添加超链接?

laravel spark中如何创建本地发票?

WordPress 中的 Xero 身份验证

从授权服务器收到无效响应。 Xero 与 Bagisto 的集成