如何使用API​​在XERO中将状态更新为已付款并更新已付款和应付款额

时间:2019-10-14 22:41:40

标签: php laravel xero-api

我正在尝试使用XERO-API更新XERO中的发票。我可以将发票另存为“草稿”,这是客户要支付的未付款项。付款完成后,我想向Xero发送请求,并将状态更改为“ PAID”; amountDue ='$ 0.00'和AmountPaid ='$ XX.xx'。我无法更新此信息,并且正在使用PHP。对此也没有太多的讨论/研究。

$refXero  = 'INV-123456';
$invoices =  $xero->loadByGUID('Accounting\\Invoice', $refXero );

    **//I am getting errors from here onwards:-** 

$invoices->setAmountDue('0');
$invoices->setAmountPaid('50.00');
$invoices->setStatus('PAID');
$invoices->setDate('2019-10-15');
$invoices->save();

我遇到的错误是“调用未定义的方法XeroPHP \ Models \ Accounting \ Invoice :: setAmountDue()”

如何发送此信息并进行更新。

谢谢

2 个答案:

答案 0 :(得分:0)

要将Xero发票作为PAID,您需要使用/ payments端点为相应的金额创建付款。发票的付款总额与发票的总额匹配后,它将被设置为PAID。

/ payments端点的文档在这里:

https://developer.xero.com/documentation/api/payments#PUT

...但是您使用的SDK中可能已经存在。请注意,您需要先将发票设置为AUTHORIZED,然后才能成功付款。

答案 1 :(得分:0)

我的发票参考号为: 97661-Z (保存在我的数据库和XERO中)

$currRefNumber = $request->input('update_payment_refNumber'); //**Z**
$refXero = $bookingID.'-'.$currRefNumber; //(**97661-Z**)

此发票编号97661-Z在XERO中另存为草稿。

因此,基本上,当发票另存为草稿时,首先需要将其更新为已授权,如下所示:-

$invoices = XeroPrivate::loadByGUID('Accounting\\Invoice', $refXero);
$invoices->setStatus(\XeroPHP\Models\Accounting\Invoice::INVOICE_STATUS_AUTHORISED);
$invoices->save();

上述内容会将发票状态从草稿更新为等待付款

现在获取帐户代码:-

$account = XeroPrivate::loadByGUID('Accounting\\Account', '880');
$dateInstance = new \DateTime();
$newPayment = new \XeroPHP\Models\Accounting\Payment();
              $newPayment
                        ->setInvoice($invoices)
                        ->setAccount($account)
                        ->setDate($dateInstance)
                        ->setAmount(600)
                        ->setIsReconciled(true)
                        ->setReference('Payment Received');

XeroPrivate::save($newPayment);

现在,这将更改状态=付费,并更新信息 AccountDue = $ 0.00 AccountPaid = $ 600.00

我希望这会在需要时对其他人有所帮助。

相关问题