【问题标题】:Overriding NetSuite calculated tax amount on Vendor Credits using SuiteTalk SOAP api使用 SuiteTalk SOAP api 覆盖 NetSuite 计算的供应商信用税额
【发布时间】:2023-02-03 09:29:57
【问题描述】:

我有一个关于使用 SOAP 覆盖 NetSuite 自动计算的供应商信用税额的问题,感谢您的帮助。

背景我们的应用程序正在使用 NetSuite 的遗留税收功能,其中可以为每个费用行指定税码,并且 NetSuite 会自动计算税额。例如,假设一家子公司与澳大利亚有税收关系,当为金额为 100 美元的行指定 10% 的税码时,NetSuite 计算税金为 10 美元。但是,NetSuite 用户界面还允许用户覆盖该数量。例如,如果实际用户文档的税额为 9.99 美元,则用户可以在 UI 中覆盖该值。我们正在尝试使用 SOAP API 执行类似的覆盖操作。由于这在 UI 中是可能的,我认为它也应该在 API 中是可能的。

editing tax total in the UI

我通过首先创建供应商账单,然后通过指定taxTotal字段更新交易,成功地为供应商账单执行了类似的操作:taxTotal schema field

但是,尝试对 Vendor Credits 进行类似操作是不成功的。 Vendor Credit 模式中没有 taxTotal 字段,并且使用唯一类似的字段 userTaxTotal 不起作用。

我想知道是否可以使用 SOAP API for Vendor Credits 来完成此操作?

感谢您的帮助。

此 xml 代码显示了我们发送的创建供应商信用的请求。结果,NetSuite 创建了 110 美元的供应商信用(NetSuite 会根据给定的税码自动计算出 10 美元的税金)。

<SOAP-ENV:Header>
        <ns4:tokenPassport xsi:type="ns3:TokenPassport">
            <!--authentication properties-->
        </ns4:tokenPassport>
    </SOAP-ENV:Header>
    <SOAP-ENV:Body>
        <ns2:upsert>
            <ns2:record xsi:type="ns1:VendorCredit" externalId="5A8B18E92971B6F31832B0AED866EF95">
                <ns1:account internalId="176"/>
                <ns1:tranId>CRED_JAN26_2023_T1</ns1:tranId>
                <ns1:entity internalId="1552"/>
                <ns1:currency internalId="1"/>
                <ns1:tranDate>2023-01-01T00:00:00</ns1:tranDate>
                <ns1:postingPeriod internalId="382"/>
                <ns1:memo/>
                <ns1:subsidiary internalId="7"/>
                <ns1:expenseList>
                    <ns1:expense>
                        <ns1:account internalId="38"/>
                        <ns1:amount>100</ns1:amount>
                        <!-- tax code corresponding to 10 percent -->
                        <ns1:taxCode internalId="1044"/>
                        <ns1:memo/>
                        <ns1:department internalId="11"/>
                        <ns1:class internalId="13"/>
                        <ns1:location internalId="7"/>
                    </ns1:expense>
                </ns1:expenseList>
            </ns2:record>
        </ns2:upsert>
    </SOAP-ENV:Body>

这是我们发送的更新税收总额的更新请求:

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="urn:purchases_2022_1.transactions.webservices.netsuite.com" xmlns:ns2="urn:messages_2022_1.platform.webservices.netsuite.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns3="urn:core_2022_1.platform.webservices.netsuite.com" xmlns:ns4="ns">
    <SOAP-ENV:Header>
        <ns4:tokenPassport xsi:type="ns3:TokenPassport">
            <!--authentication properties-->
        </ns4:tokenPassport>
    </SOAP-ENV:Header>
    <SOAP-ENV:Body>
        <ns2:update>
            <ns2:record xsi:type="ns1:VendorCredit" externalId="5A8B18E92971B6F31832B0AED866EF95">
                <ns1:userTaxTotal>9.99</ns1:userTaxTotal>
            </ns2:record>
        </ns2:update>
    </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

虽然这没有失败,但它不会改变税收总额的价值。

【问题讨论】:

    标签: netsuite suitetalk


    【解决方案1】:

    在 SuiteTalk SOAP 中,税收总计字段是只读的。您必须设置 taxRate1 和 taxRate2 字段以更新税率。虽然我以前没有尝试过,因为我使用的大多数实现都使用 avalara,但您也可以尝试 tax1Amt 字段。根据您配置税收的方式(如果有像 avalara 这样的第三方税收集成),您可能还必须配置一个可以被覆盖的自定义 taxCode。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多