Either debit or credit amount is required for Debtors - CPXZ

raise raise_exception, encode(msg)\nValidationError: Sales Invoice SINV-00017: Either debit or credit amount is required for Debtors - CPXZ\n"]“,”_server_messages":“["{\"message\": \"Sales Invoice SINV-00017: Either debit or credit amount is required for Debtors - CPXZ\", \"indicator\": \"red\"}"]”}

Looks like you are not entering or passing the invoice amount in your request message or data entry

What is the name of the field I should pass the amount to?

It depends on what you are trying to achieve, you can see the field names in the doc type from Customize Form, for eg: total_billing_amount

I check everything. I miss something. Please someone help me.

This is the code to upload invoice

1 invoice header
new_erp_salesinvoice.Data.items = jinvoicelist
new_erp_salesinvoice.Data.title = jihlist(0).invoicenumber & “-” & jihlist(0).companyname & “-” & jihlist(0).invoicedate
new_erp_salesinvoice.Data.naming_series = “SINV-”
new_erp_salesinvoice.Data.name = “SINV-” & jihlist(0).invoicenumber
new_erp_salesinvoice.Data.customer_name = jihlist(0).companyname
new_erp_salesinvoice.Data.customer = jihlist(0).companyname
new_erp_salesinvoice.Data.is_pos = 1
new_erp_salesinvoice.Data.is_return = 0
new_erp_salesinvoice.Data.update_stock = 1
new_erp_salesinvoice.Data.offline_pos_name = “SINV-” & jihlist(0).invoicenumber
new_erp_salesinvoice.Data.posting_date = jihlist(0).invoicedate
new_erp_salesinvoice.Data.due_date = jihlist(0).duedate
new_erp_salesinvoice.Data.selling_price_list = “Standard Selling” 'jihlist(0).pricelist
new_erp_salesinvoice.Data.price_list_currency = defaultcustomervar(0).currency
'defaultcustomervar(0).currency
new_erp_salesinvoice.Data.total_billing_amount = jihlist(0).invoicetotal
new_erp_salesinvoice.Data.base_total = jihlist(0).subtotal
new_erp_salesinvoice.Data.base_net_total = jihlist(0).subtotal
new_erp_salesinvoice.Data.net_total = jihlist(0).subtotal
new_erp_salesinvoice.Data.total = jihlist(0).subtotal
'new_erp_salesinvoice.Data.taxes = jtax
new_erp_salesinvoice.Data.taxes_and_charges = “GCT” 'jihlist(0).tax1name
new_erp_salesinvoice.Data.apply_discount_on = “Net Total”
new_erp_salesinvoice.Data.payments = jinvoicepayment
new_erp_salesinvoice.Data.account_for_change_amount = jaccountsetup_Cash(0).iaccountname
new_erp_salesinvoice.Data.debit_to = jaccountsetup_Debtors(0).iaccountname
new_erp_salesinvoice.Data.against_income_account = jaccountsetup_Sales(0).iaccountname
new_erp_salesinvoice.Data.import_status = “U”
new_erp_salesinvoice.Data.status = “Paid”
new_erp_salesinvoice.Data.submit_on_creation = 1
new_erp_salesinvoice.Data.joogle_invoice = jihlist(0).invoicenumber
new_erp_salesinvoice.Data.docstatus = 1

This is the code for the detail record

Public Class InvoiceDetailManager : Inherits ConnectionHandler
Function InvoiceDetailData(ByRef invoicenumber As String) As List(Of InvoiceDetail)
InvoiceDetailData = New List(Of InvoiceDetail)
Dim sqltext As String = “select * from invoicedetail where (importstatus = ‘U’) And (invoicenumber = @invoicenumber) "
Using cmd As SqlClient.SqlCommand = New SqlClient.SqlCommand() _
With {.CommandText = sqltext, .Connection = sqlcon}
cmd.Parameters.AddWithValue(”@invoicenumber", invoicenumber)

        Try
            If sqlcon.State <> ConnectionState.Open Then
                sqlcon.Open()
            End If
            Dim dr As SqlClient.SqlDataReader = cmd.ExecuteReader(CommandBehavior.CloseConnection)
            While dr.Read
                Dim findinvoiceprint As New InvoiceDetail() With {.qty = dr("quantity").ToString,
                                                                    .quantity = dr("quantity").ToString,
                                                                       .rate = dr("listprice").ToString,
                                                                       .base_rate = dr("unitprice").ToString,
                                                                       .base_amount = dr("extended").ToString,
                                                                        .stock_uom = dr("uom").ToString,
                                                                        .item_code = dr("itemnumber").ToString,
                                                                        .item_name = dr("itemname").ToString,
                                                                       .description = dr("description").ToString,
                                                                       .income_account = "Sales - CPXZ",
                                                                       .cost_center = "Main - CPXZ",
                                                                       .expense_account = "Cost of Goods Sold - CPXZ",
                                                                       .item_tax_rate = dr("item_tax_rate").ToString,
                                                                       .barcode = dr("upccode").ToString,
                                                                        .amount = dr("extended").ToString}

                InvoiceDetailData.Add(findinvoiceprint)
            End While
        Catch ex As Exception
            MsgBox(ex.Message, MsgBoxStyle.Critical, "Print Invoice Manager Say")
        Finally
            Try
                If sqlcon.State = ConnectionState.Open Then
                    sqlcon.Close()
                End If
            Catch ex As Exception
                MsgBox("Error closing connection")
            End Try
        End Try
    End Using
End Function

What am I missing. If i set the docstatus = 0 the that same invoice am try to post via the API will upload as draft and i can post it however if i try to post from the api am getting the same exception.

Sales Invoice SINV-00039: Either debit or credit amount is required for Debtors - CPXZ\n"]“,”_server_messages":“["{\"message\": \"Sales Invoice SINV-00039: Either debit or credit amount is required for Debtors - CPXZ\", \"indicator\": \"red\"}"]”}

Seems you may need to include payment details info when update_stock = 1