继续收到错误“PAYMENTTABS_LINEITEM_AMOUNT_IS_MISSING”

时间:2017-09-27 20:39:08

标签: docusignapi

是否有人尝试使用DocuSign rest API更改“付款项目”的“固定金额”?

我正在使用通过DocuSign网页设计和设置的模板。

该模板由2个模板角色组成,其中一个是“客户”。它包含一个付款项目,我想在其中预先填写金额,付款说明项目代码和付款说明项目详细信息。

我在'formulaTabs'下的文档中找到了这个:

"<paymentDetails>" +
    "<lineItems>" +
        "<paymentLineItem>" +
            "<amountReference>\\*txtPayment</amountReference>" +
            "<description>" + polNum + "</description>" +
            "<itemCode>" + custId + "</itemCode>" +
        "</paymentLineItem>" +
    "</lineItems>" +
"</paymentDetails>" +

但是,我不确定在哪里放置它,我已尝试在

中使用它
<envelopeDefinition> </envelopeDefinition>

<text> </text> 

但是,我不断提出PAYMENTTABS_LINEITEM_AMOUNT_IS_MISSING错误。

我在标有txtPayment的模板上有一个文字字段(我不需要)。

付款项目标记为txtPaymentItem

如果有必要,我愿意使用其他方法。

谢谢,

2 个答案:

答案 0 :(得分:0)

我希望您能够使用WEBApp进行付款,但在使用API​​方面苦苦挣扎,因此使用DocuSignPayment API的正确JSON结构是,

"formulaTabs": [{
                "ConcealValueOnDocument": "false",
                "Formula": "([PaymentItem1]) * 100",
                "IsPaymentAmount": "false",
                "Locked": "true",
                "Name": "paymentsFormulaTab",
                "PaymentDetails": {
                    "currencyCode": "USD",
                    "gatewayAccountId": "a7dcd60d-d963-4a81-bc72-68b71aad2062",
                    "lineItems": [{
                            "amountReference": "PaymentItem1",
                            "description": "951900;Tims 6.2;4444;1002",
                            "itemCode": "base",
                            "name": "salesDeposit"
                        }
                    ]
                },
                "Required": "true",
                "RoundDecimalPlaces": "2"
            }
        ],
"numberTabs": [{
                "FontColor": "DarkRed",
                "IsPaymentAmount": "true",
                "Locked": "true",
                "TabLabel": "PaymentItem1",
                "Value": "2500.00"
            }
        ]

如果您看到上面的JSON结构,它有两个选项卡,公式和数字选项卡,公式选项卡使用数字选项卡参考。在这种情况下,它指的是PaymentItem1。希望JSON以上将解决您的问题。

答案 1 :(得分:0)

感谢Amit K Bist这可以在payment item标签放入模板后更新。

创建模板时,添加您的付款项目,选择付款金额下的“签名者输入”选项,并将值设为0.

然后从付款项目中捕获数据标签。它看起来应该类似于:PaymentCustom 5e7e552c-2d0e-4364-b4d2-bb1784330191

然后将此添加到您的请求正文:

"<envelopeDefinition xmlns=\"http://www.docusign.com/restapi\">" +
    "<status>sent</status>" +
    "<emailSubject>Turner Pest Control - Termite Bond Quote</emailSubject>" +
    "<templateId>" + templateId + "</templateId>" +
    "<templateRoles>" +
        "<templateRole>" +
            "<name>" + custName + "</name>" +
            "<email>" + custEmail + "</email>" +
            "<roleName>Customer</roleName>" +
            "<tabs>" +
                "<numberTabs>" +
                    "<number>" +
                        "<fontColor>DarkRed</fontColor>" +
                        "<locked>true</locked>" +
                        "<tabLabel>PaymentCustom 5e7e552c-2d0e-4364-b4d2-bb1784330191</tabLabel>" +
                        "<value>" + txtPayment + "</value>" +
                    "</number>" +
                "</numberTabs>" +
            "</tabs>" +
        "</templateRole>" +
    "</templateRoles>" +
"</envelopeDefinition>";

付款项目如何变成数字标签超出了我的范围,但它确实有效!

我还在努力通过API更新付款细节。收到Card declined错误,因此我无法确认付款明细是否会更新。