At least one mode of payment is required for POS invoice.
it should complete the sales invoice successfully.
the system should create the invoice successfully without any issue.
At least one mode of payment is required for POS invoice.
Traceback (most recent call last):
File "apps/frappe/frappe/app.py", line 121, in application
response = frappe.api.handle(request)
File "apps/frappe/frappe/api/__init__.py", line 63, in handle
data = endpoint(**arguments)
File "apps/frappe/frappe/api/v1.py", line 40, in handle_rpc_call
return frappe.handler.handle()
~~~~~~~~~~~~~~~~~~~~~^^
File "apps/frappe/frappe/handler.py", line 53, in handle
data = execute_cmd(cmd)
File "apps/frappe/frappe/handler.py", line 86, in execute_cmd
return frappe.call(method, **frappe.form_dict)
~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "apps/frappe/frappe/__init__.py", line 1124, in call
return fn(*args, **newargs)
File "apps/frappe/frappe/utils/typing_validations.py", line 36, in wrapper
return func(*args, **kwargs)
File "apps/pos_next/pos_next/api/invoices.py", line 1388, in submit_invoice
invoice_doc.submit()
~~~~~~~~~~~~~~~~~~^^
File "apps/frappe/frappe/utils/typing_validations.py", line 36, in wrapper
return func(*args, **kwargs)
File "apps/frappe/frappe/model/document.py", line 1270, in submit
return self._submit()
~~~~~~~~~~~~^^
File "apps/frappe/frappe/model/document.py", line 1251, in _submit
return self.save()
~~~~~~~~~^^
File "apps/frappe/frappe/model/document.py", line 518, in save
return self._save(*args, **kwargs)
~~~~~~~~~~^^^^^^^^^^^^^^^^^
File "apps/frappe/frappe/model/document.py", line 572, in _save
self.run_post_save_methods()
~~~~~~~~~~~~~~~~~~~~~~~~~~^^
File "apps/frappe/frappe/model/document.py", line 1378, in run_post_save_methods
self.run_method("on_submit")
~~~~~~~~~~~~~~~^^^^^^^^^^^^^
File "apps/frappe/frappe/model/document.py", line 1181, in run_method
out = Document.hook(fn)(self, *args, **kwargs)
File "apps/frappe/frappe/model/document.py", line 1578, in composer
return composed(self, method, *args, **kwargs)
File "apps/frappe/frappe/model/document.py", line 1556, in runner
add_to_return_value(self, fn(self, *args, **kwargs))
~~^^^^^^^^^^^^^^^^^^^^^^^
File "apps/frappe/frappe/model/document.py", line 1178, in fn
return method_object(*args, **kwargs)
File "apps/erpnext/erpnext/accounts/doctype/sales_invoice/sales_invoice.py", line 448, in on_submit
self.validate_pos_paid_amount()
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
File "apps/pos_next/pos_next/overrides/sales_invoice.py", line 145, in validate_pos_paid_amount
super().validate_pos_paid_amount()
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
File "apps/erpnext/erpnext/accounts/doctype/sales_invoice/sales_invoice.py", line 542, in validate_pos_paid_amount
frappe.throw(_("At least one mode of payment is required for POS invoice."))
~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "apps/frappe/frappe/utils/messages.py", line 148, in throw
msgprint(
~~~~~~~~^
msg,
^^^^
...<6 lines>...
primary_action=primary_action,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "apps/frappe/frappe/utils/messages.py", line 109, in msgprint
_raise_exception()
~~~~~~~~~~~~~~~~^^
File "apps/frappe/frappe/utils/messages.py", line 58, in _raise_exception
raise exc
frappe.exceptions.ValidationError: At least one mode of payment is required for POS invoice.
index-DXrQpee7.js:45:2561
submitInvoiceResource.error: Error: /api/method/pos_next.api.invoices.submit_invoice ValidationError
NextJS 41
index-DXrQpee7.js:94:7092
Resource error details:
Object { exc_type: "ValidationError", _server_messages: undefined, httpStatus: undefined, messages: (1) […], messagesContent: '["At least one mode of payment is required for POS invoice."]', data: undefined, exception: undefined, keys: (6) […] }
_server_messages: undefined
data: undefined
exc_type: "ValidationError"
exception: undefined
httpStatus: undefined
keys: Array(6) [ "exc_type", "exc", "response", … ]
messages: Array [ "At least one mode of payment is required for POS invoice." ]
messagesContent: '["At least one mode of payment is required for POS invoice."]'
<prototype>: Object { … }
index-DXrQpee7.js:94:7170
First message: At least one mode of payment is required for POS invoice. index-DXrQpee7.js:94:7451
After attaching, error.messages:
Array [ "At least one mode of payment is required for POS invoice." ]
index-DXrQpee7.js:94:7667
HTTP Request 1
await fetch("https://erpnext.com/api/method/pos_next.api.invoices.update_invoice", {
"credentials": "include",
"headers": {
"User-Agent": "Mozilla/5.0 (X11; Linux x86_64; rv:149.0) Gecko/20100101 Firefox/149.0",
"Accept": "application/json",
"Accept-Language": "en-US,en;q=0.9",
"Content-Type": "application/json; charset=utf-8",
"X-Frappe-Site-Name": "erpnext.com",
"X-Frappe-CSRF-Token": "0fb8309af44695a39ed3c8d183c0137778731b4abd4bb8e5c0dbc72f",
"Sec-Fetch-Dest": "empty",
"Sec-Fetch-Mode": "cors",
"Sec-Fetch-Site": "same-origin",
"Priority": "u=0"
},
"referrer": "https://erpnext.com/pos/",
"body": "{\"data\":\"{\\\"doctype\\\":\\\"Sales Invoice\\\",\\\"pos_profile\\\":\\\"نقطة بيع 1\\\",\\\"posa_pos_opening_shift\\\":\\\"POSA-OS-26-0000044\\\",\\\"customer\\\":\\\"عميل دفع نقدي\\\",\\\"items\\\":[{\\\"item_code\\\":\\\"0088-15605-17030\\\",\\\"item_name\\\":\\\"ابوال مرشه زيت\\\",\\\"qty\\\":1,\\\"rate\\\":6000,\\\"price_list_rate\\\":6000,\\\"uom\\\":\\\"قطعة\\\",\\\"warehouse\\\":\\\"مخزن المحل - ع\\\",\\\"conversion_factor\\\":1,\\\"discount_percentage\\\":0,\\\"discount_amount\\\":0,\\\"pricing_rules\\\":\\\"\\\",\\\"is_rate_manually_edited\\\":0,\\\"original_rate\\\":null,\\\"is_free_item\\\":0}],\\\"payments\\\":[],\\\"discount_amount\\\":0,\\\"coupon_code\\\":null,\\\"is_pos\\\":1,\\\"update_stock\\\":1}\"}",
"method": "POST",
"mode": "cors"
});
HTTP Response 1
{"message":{"name":"ACC-SINV-2026-01296","owner":"Administrator","creation":"2026-05-09 23:40:06.387212","modified":"2026-05-09 23:40:06.387212","modified_by":"Administrator","docstatus":0,"idx":0,"naming_series":"ACC-SINV-.YYYY.-","customer":"عميل دفع نقدي","customer_name":"عميل دفع نقدي","tax_id":null,"company":"لقطع الغيار","company_tax_id":null,"posting_date":"2026-05-09","posting_time":"23:40:06.406926","set_posting_time":0,"due_date":"2026-05-09","posa_return_valid_upto":null,"is_pos":1,"pos_profile":"نقطة بيع 1","posa_pos_opening_shift":"POSA-OS-26-0000044","posa_is_printed":0,"is_consolidated":0,"is_return":0,"return_against":null,"update_outstanding_for_self":0,"update_billed_amount_in_sales_order":0,"update_billed_amount_in_delivery_note":1,"is_debit_note":0,"apply_tds":0,"amended_from":null,"is_created_using_pos":0,"pos_closing_entry":null,"has_subcontracted":0,"cost_center":"Main - ع","project":null,"currency":"YER","conversion_rate":0.00235294,"selling_price_list":"Standard Selling","price_list_currency":"YER","plc_conversion_rate":0.00235294,"ignore_pricing_rule":1,"scan_barcode":null,"last_scanned_warehouse":null,"update_stock":1,"set_warehouse":"مخزن المحل - ع","set_target_warehouse":null,"total_qty":1.0,"total_net_weight":0.0,"base_total":14.11764,"base_net_total":14.11764,"total":6000.0,"net_total":6000.0,"tax_category":"","taxes_and_charges":null,"posa_delivery_charges":null,"posa_delivery_charges_rate":0.0,"shipping_rule":null,"incoterm":null,"named_place":null,"base_total_taxes_and_charges":0.0,"total_taxes_and_charges":0.0,"base_grand_total":14.11764,"base_rounding_adjustment":0.0,"base_rounded_total":0.0,"base_in_words":"SAR Fourteen and Twelve Halala only.","grand_total":6000.0,"rounding_adjustment":0.0,"use_company_roundoff_cost_center":0,"rounded_total":0.0,"in_words":"YER Six Thousand only.","total_advance":0.0,"outstanding_amount":14.11764,"disable_rounded_total":1,"tax_withholding_group":null,"ignore_tax_withholding_threshold":0,"override_tax_withholding_entries":0,"apply_discount_on":"Grand Total","base_discount_amount":0.0,"coupon_code":null,"is_cash_or_non_trade_discount":0,"additional_discount_account":null,"additional_discount_percentage":0.0,"discount_amount":0.0,"other_charges_calculation":null,"total_billing_hours":0.0,"total_billing_amount":0.0,"cash_bank_account":null,"base_paid_amount":0.0,"paid_amount":0.0,"base_change_amount":0.0,"change_amount":0.0,"account_for_change_amount":"1110 - Cash - ع","allocate_advances_automatically":0,"only_include_allocated_payments":0,"write_off_amount":0.0,"base_write_off_amount":0.0,"write_off_outstanding_amount_automatically":0,"write_off_account":"5201 - Administrative Expenses - ع","write_off_cost_center":"Main - ع","redeem_loyalty_points":0,"loyalty_points":0,"loyalty_amount":0.0,"loyalty_program":null,"dont_create_loyalty_points":0,"loyalty_redemption_account":null,"loyalty_redemption_cost_center":null,"customer_address":null,"address_display":null,"contact_person":null,"contact_display":null,"contact_mobile":null,"contact_email":null,"territory":"Yemen","shipping_address_name":null,"shipping_address":null,"dispatch_address_name":null,"dispatch_address":null,"company_address":null,"company_address_display":null,"company_contact_person":null,"ignore_default_payment_terms_template":0,"payment_terms_template":"","tc_name":null,"terms":null,"po_no":"","po_date":null,"debit_to":"1310 - Debtors - ع","party_account_currency":"SAR","is_opening":"No","unrealized_profit_loss_account":null,"against_income_account":"4110 - Sales - ع","posa_notes":null,"posa_delivery_date":null,"posa_authorization_code":null,"sales_partner":null,"amount_eligible_for_commission":14.11764,"commission_rate":0.0,"total_commission":0.0,"letter_head":null,"group_same_items":0,"select_print_heading":null,"language":"en","subscription":null,"from_date":null,"auto_repeat":null,"to_date":null,"status":"Draft","inter_company_invoice_reference":null,"represents_company":null,"customer_group":"All Customer Groups","utm_source":null,"utm_campaign":null,"utm_medium":null,"utm_content":null,"is_internal_customer":0,"is_discounted":0,"remarks":null,"doctype":"Sales Invoice","items":[{"name":"540g9gm865","owner":"Administrator","creation":"2026-05-09 23:40:06.387212","modified":"2026-05-09 23:40:06.387212","modified_by":"Administrator","docstatus":0,"idx":1,"barcode":null,"has_item_scanned":0,"item_code":"0088-15605-17030","posa_notes":null,"item_name":"ابوال مرشه زيت","posa_row_id":null,"name_overridden":0,"posa_delivery_date":null,"customer_item_code":null,"description":"","item_group":"قطع غيار سيارات","brand":null,"image":"","qty":1.0,"stock_uom":"قطعة","uom":"قطعة","conversion_factor":1.0,"stock_qty":1.0,"price_list_rate":6000.0,"base_price_list_rate":14.11764,"margin_type":"","margin_rate_or_amount":0.0,"rate_with_margin":0.0,"discount_percentage":0.0,"discount_amount":0.0,"distributed_discount_amount":0.0,"base_rate_with_margin":0.0,"rate":6000.0,"amount":6000.0,"item_tax_template":null,"tax_withholding_category":null,"base_rate":14.11764,"base_amount":14.11764,"pricing_rules":"","posa_offers":null,"posa_offer_applied":0,"posa_is_offer":0,"posa_is_replace":null,"stock_uom_rate":6000.0,"is_free_item":0,"apply_tds":1,"grant_commission":1,"net_rate":6000.0,"net_amount":6000.0,"base_net_rate":14.11764,"base_net_amount":14.11764,"delivered_by_supplier":0,"income_account":"4110 - Sales - ع","is_fixed_asset":0,"asset":null,"finance_book":null,"expense_account":"5111 - Cost of Goods Sold - ع","discount_account":null,"deferred_revenue_account":null,"service_stop_date":null,"enable_deferred_revenue":0,"service_start_date":null,"service_end_date":null,"weight_per_unit":0.0,"total_weight":0.0,"weight_uom":null,"warehouse":"مخزن المحل - ع","target_warehouse":null,"quality_inspection":null,"serial_and_batch_bundle":null,"use_serial_batch_fields":0,"allow_zero_valuation_rate":0,"incoming_rate":12.0,"item_tax_rate":"{}","actual_batch_qty":0.0,"serial_no":null,"batch_no":null,"actual_qty":-4.0,"company_total_stock":0.0,"sales_order":null,"so_detail":null,"sales_invoice_item":null,"delivery_note":null,"dn_detail":null,"delivered_qty":0.0,"pos_invoice":null,"pos_invoice_item":null,"scio_detail":null,"purchase_order":null,"purchase_order_item":null,"cost_center":"Main - ع","project":null,"page_break":0,"parent":"ACC-SINV-2026-01296","parentfield":"items","parenttype":"Sales Invoice","doctype":"Sales Invoice Item","__unsaved":1}],"taxes":[],"tax_withholding_entries":[],"item_wise_tax_details":[],"pricing_rules":[],"packed_items":[],"timesheets":[],"payments":[],"advances":[],"payment_schedule":[],"sales_team":[],"posa_coupons":[],"posa_offers":[]}}
HTTP Request 2
await fetch("https://erpnext.com/api/method/pos_next.api.invoices.submit_invoice", {
"credentials": "include",
"headers": {
"User-Agent": "Mozilla/5.0 (X11; Linux x86_64; rv:149.0) Gecko/20100101 Firefox/149.0",
"Accept": "application/json",
"Accept-Language": "en-US,en;q=0.9",
"Content-Type": "application/json; charset=utf-8",
"X-Frappe-Site-Name": "erpnext.com",
"X-Frappe-CSRF-Token": "0fb8309af44695a39ed3c8d183c0137778731b4abd4bb8e5c0dbc72f",
"Sec-Fetch-Dest": "empty",
"Sec-Fetch-Mode": "cors",
"Sec-Fetch-Site": "same-origin",
"Priority": "u=4"
},
"referrer": "https://erpnext.com/pos/",
"body": "{\"invoice\":\"{\\\"name\\\":\\\"ACC-SINV-2026-01296\\\",\\\"owner\\\":\\\"Administrator\\\",\\\"creation\\\":\\\"2026-05-09 23:40:06.387212\\\",\\\"modified\\\":\\\"2026-05-09 23:40:06.387212\\\",\\\"modified_by\\\":\\\"Administrator\\\",\\\"docstatus\\\":0,\\\"idx\\\":0,\\\"naming_series\\\":\\\"ACC-SINV-.YYYY.-\\\",\\\"customer\\\":\\\"عميل دفع نقدي\\\",\\\"customer_name\\\":\\\"عميل دفع نقدي\\\",\\\"tax_id\\\":null,\\\"company\\\":\\\"لقطع الغيار\\\",\\\"company_tax_id\\\":null,\\\"posting_date\\\":\\\"2026-05-09\\\",\\\"posting_time\\\":\\\"23:40:06.406926\\\",\\\"set_posting_time\\\":0,\\\"due_date\\\":\\\"2026-05-09\\\",\\\"posa_return_valid_upto\\\":null,\\\"is_pos\\\":1,\\\"pos_profile\\\":\\\"نقطة بيع 1\\\",\\\"posa_pos_opening_shift\\\":\\\"POSA-OS-26-0000044\\\",\\\"posa_is_printed\\\":0,\\\"is_consolidated\\\":0,\\\"is_return\\\":0,\\\"return_against\\\":null,\\\"update_outstanding_for_self\\\":0,\\\"update_billed_amount_in_sales_order\\\":0,\\\"update_billed_amount_in_delivery_note\\\":1,\\\"is_debit_note\\\":0,\\\"apply_tds\\\":0,\\\"amended_from\\\":null,\\\"is_created_using_pos\\\":0,\\\"pos_closing_entry\\\":null,\\\"has_subcontracted\\\":0,\\\"cost_center\\\":\\\"Main - ع\\\",\\\"project\\\":null,\\\"currency\\\":\\\"YER\\\",\\\"conversion_rate\\\":0.00235294,\\\"selling_price_list\\\":\\\"Standard Selling\\\",\\\"price_list_currency\\\":\\\"YER\\\",\\\"plc_conversion_rate\\\":0.00235294,\\\"ignore_pricing_rule\\\":1,\\\"scan_barcode\\\":null,\\\"last_scanned_warehouse\\\":null,\\\"update_stock\\\":1,\\\"set_warehouse\\\":\\\"مخزن المحل - ع\\\",\\\"set_target_warehouse\\\":null,\\\"total_qty\\\":1,\\\"total_net_weight\\\":0,\\\"base_total\\\":14.11764,\\\"base_net_total\\\":14.11764,\\\"total\\\":6000,\\\"net_total\\\":6000,\\\"tax_category\\\":\\\"\\\",\\\"taxes_and_charges\\\":null,\\\"posa_delivery_charges\\\":null,\\\"posa_delivery_charges_rate\\\":0,\\\"shipping_rule\\\":null,\\\"incoterm\\\":null,\\\"named_place\\\":null,\\\"base_total_taxes_and_charges\\\":0,\\\"total_taxes_and_charges\\\":0,\\\"base_grand_total\\\":14.11764,\\\"base_rounding_adjustment\\\":0,\\\"base_rounded_total\\\":0,\\\"base_in_words\\\":\\\"SAR Fourteen and Twelve Halala only.\\\",\\\"grand_total\\\":6000,\\\"rounding_adjustment\\\":0,\\\"use_company_roundoff_cost_center\\\":0,\\\"rounded_total\\\":0,\\\"in_words\\\":\\\"YER Six Thousand only.\\\",\\\"total_advance\\\":0,\\\"outstanding_amount\\\":14.11764,\\\"disable_rounded_total\\\":1,\\\"tax_withholding_group\\\":null,\\\"ignore_tax_withholding_threshold\\\":0,\\\"override_tax_withholding_entries\\\":0,\\\"apply_discount_on\\\":\\\"Grand Total\\\",\\\"base_discount_amount\\\":0,\\\"coupon_code\\\":null,\\\"is_cash_or_non_trade_discount\\\":0,\\\"additional_discount_account\\\":null,\\\"additional_discount_percentage\\\":0,\\\"discount_amount\\\":0,\\\"other_charges_calculation\\\":null,\\\"total_billing_hours\\\":0,\\\"total_billing_amount\\\":0,\\\"cash_bank_account\\\":null,\\\"base_paid_amount\\\":0,\\\"paid_amount\\\":0,\\\"base_change_amount\\\":0,\\\"change_amount\\\":0,\\\"account_for_change_amount\\\":\\\"1110 - Cash - ع\\\",\\\"allocate_advances_automatically\\\":0,\\\"only_include_allocated_payments\\\":0,\\\"write_off_amount\\\":0,\\\"base_write_off_amount\\\":0,\\\"write_off_outstanding_amount_automatically\\\":0,\\\"write_off_account\\\":\\\"5201 - Administrative Expenses - ع\\\",\\\"write_off_cost_center\\\":\\\"Main - ع\\\",\\\"redeem_loyalty_points\\\":0,\\\"loyalty_points\\\":0,\\\"loyalty_amount\\\":0,\\\"loyalty_program\\\":null,\\\"dont_create_loyalty_points\\\":0,\\\"loyalty_redemption_account\\\":null,\\\"loyalty_redemption_cost_center\\\":null,\\\"customer_address\\\":null,\\\"address_display\\\":null,\\\"contact_person\\\":null,\\\"contact_display\\\":null,\\\"contact_mobile\\\":null,\\\"contact_email\\\":null,\\\"territory\\\":\\\"Yemen\\\",\\\"shipping_address_name\\\":null,\\\"shipping_address\\\":null,\\\"dispatch_address_name\\\":null,\\\"dispatch_address\\\":null,\\\"company_address\\\":null,\\\"company_address_display\\\":null,\\\"company_contact_person\\\":null,\\\"ignore_default_payment_terms_template\\\":0,\\\"payment_terms_template\\\":\\\"\\\",\\\"tc_name\\\":null,\\\"terms\\\":null,\\\"po_no\\\":\\\"\\\",\\\"po_date\\\":null,\\\"debit_to\\\":\\\"1310 - Debtors - ع\\\",\\\"party_account_currency\\\":\\\"SAR\\\",\\\"is_opening\\\":\\\"No\\\",\\\"unrealized_profit_loss_account\\\":null,\\\"against_income_account\\\":\\\"4110 - Sales - ع\\\",\\\"posa_notes\\\":null,\\\"posa_delivery_date\\\":null,\\\"posa_authorization_code\\\":null,\\\"sales_partner\\\":null,\\\"amount_eligible_for_commission\\\":14.11764,\\\"commission_rate\\\":0,\\\"total_commission\\\":0,\\\"letter_head\\\":null,\\\"group_same_items\\\":0,\\\"select_print_heading\\\":null,\\\"language\\\":\\\"en\\\",\\\"subscription\\\":null,\\\"from_date\\\":null,\\\"auto_repeat\\\":null,\\\"to_date\\\":null,\\\"status\\\":\\\"Draft\\\",\\\"inter_company_invoice_reference\\\":null,\\\"represents_company\\\":null,\\\"customer_group\\\":\\\"All Customer Groups\\\",\\\"utm_source\\\":null,\\\"utm_campaign\\\":null,\\\"utm_medium\\\":null,\\\"utm_content\\\":null,\\\"is_internal_customer\\\":0,\\\"is_discounted\\\":0,\\\"remarks\\\":null,\\\"doctype\\\":\\\"Sales Invoice\\\",\\\"items\\\":[{\\\"name\\\":\\\"540g9gm865\\\",\\\"owner\\\":\\\"Administrator\\\",\\\"creation\\\":\\\"2026-05-09 23:40:06.387212\\\",\\\"modified\\\":\\\"2026-05-09 23:40:06.387212\\\",\\\"modified_by\\\":\\\"Administrator\\\",\\\"docstatus\\\":0,\\\"idx\\\":1,\\\"barcode\\\":null,\\\"has_item_scanned\\\":0,\\\"item_code\\\":\\\"0088-15605-17030\\\",\\\"posa_notes\\\":null,\\\"item_name\\\":\\\"ابوال مرشه زيت\\\",\\\"posa_row_id\\\":null,\\\"name_overridden\\\":0,\\\"posa_delivery_date\\\":null,\\\"customer_item_code\\\":null,\\\"description\\\":\\\"\\\",\\\"item_group\\\":\\\"قطع غيار سيارات\\\",\\\"brand\\\":null,\\\"image\\\":\\\"\\\",\\\"qty\\\":1,\\\"stock_uom\\\":\\\"قطعة\\\",\\\"uom\\\":\\\"قطعة\\\",\\\"conversion_factor\\\":1,\\\"stock_qty\\\":1,\\\"price_list_rate\\\":6000,\\\"base_price_list_rate\\\":14.11764,\\\"margin_type\\\":\\\"\\\",\\\"margin_rate_or_amount\\\":0,\\\"rate_with_margin\\\":0,\\\"discount_percentage\\\":0,\\\"discount_amount\\\":0,\\\"distributed_discount_amount\\\":0,\\\"base_rate_with_margin\\\":0,\\\"rate\\\":6000,\\\"amount\\\":6000,\\\"item_tax_template\\\":null,\\\"tax_withholding_category\\\":null,\\\"base_rate\\\":14.11764,\\\"base_amount\\\":14.11764,\\\"pricing_rules\\\":\\\"\\\",\\\"posa_offers\\\":null,\\\"posa_offer_applied\\\":0,\\\"posa_is_offer\\\":0,\\\"posa_is_replace\\\":null,\\\"stock_uom_rate\\\":6000,\\\"is_free_item\\\":0,\\\"apply_tds\\\":1,\\\"grant_commission\\\":1,\\\"net_rate\\\":6000,\\\"net_amount\\\":6000,\\\"base_net_rate\\\":14.11764,\\\"base_net_amount\\\":14.11764,\\\"delivered_by_supplier\\\":0,\\\"income_account\\\":\\\"4110 - Sales - ع\\\",\\\"is_fixed_asset\\\":0,\\\"asset\\\":null,\\\"finance_book\\\":null,\\\"expense_account\\\":\\\"5111 - Cost of Goods Sold - ع\\\",\\\"discount_account\\\":null,\\\"deferred_revenue_account\\\":null,\\\"service_stop_date\\\":null,\\\"enable_deferred_revenue\\\":0,\\\"service_start_date\\\":null,\\\"service_end_date\\\":null,\\\"weight_per_unit\\\":0,\\\"total_weight\\\":0,\\\"weight_uom\\\":null,\\\"warehouse\\\":\\\"مخزن المحل - ع\\\",\\\"target_warehouse\\\":null,\\\"quality_inspection\\\":null,\\\"serial_and_batch_bundle\\\":null,\\\"use_serial_batch_fields\\\":0,\\\"allow_zero_valuation_rate\\\":0,\\\"incoming_rate\\\":12,\\\"item_tax_rate\\\":\\\"{}\\\",\\\"actual_batch_qty\\\":0,\\\"serial_no\\\":null,\\\"batch_no\\\":null,\\\"actual_qty\\\":-4,\\\"company_total_stock\\\":0,\\\"sales_order\\\":null,\\\"so_detail\\\":null,\\\"sales_invoice_item\\\":null,\\\"delivery_note\\\":null,\\\"dn_detail\\\":null,\\\"delivered_qty\\\":0,\\\"pos_invoice\\\":null,\\\"pos_invoice_item\\\":null,\\\"scio_detail\\\":null,\\\"purchase_order\\\":null,\\\"purchase_order_item\\\":null,\\\"cost_center\\\":\\\"Main - ع\\\",\\\"project\\\":null,\\\"page_break\\\":0,\\\"parent\\\":\\\"ACC-SINV-2026-01296\\\",\\\"parentfield\\\":\\\"items\\\",\\\"parenttype\\\":\\\"Sales Invoice\\\",\\\"doctype\\\":\\\"Sales Invoice Item\\\",\\\"__unsaved\\\":1}],\\\"taxes\\\":[],\\\"tax_withholding_entries\\\":[],\\\"item_wise_tax_details\\\":[],\\\"pricing_rules\\\":[],\\\"packed_items\\\":[],\\\"timesheets\\\":[],\\\"payments\\\":[],\\\"advances\\\":[],\\\"payment_schedule\\\":[],\\\"sales_team\\\":[],\\\"posa_coupons\\\":[],\\\"posa_offers\\\":[]}\",\"data\":\"{\\\"change_amount\\\":0,\\\"write_off_amount\\\":0}\"}",
"method": "POST",
"mode": "cors"
});
HTTP Response 2
{"exception":"frappe.exceptions.ValidationError: At least one mode of payment is required for POS invoice.","exc_type":"ValidationError","_exc_source":"pos_next (app)","exc":"[\"Traceback (most recent call last):\\n File \\\"apps/frappe/frappe/app.py\\\", line 121, in application\\n response = frappe.api.handle(request)\\n File \\\"apps/frappe/frappe/api/__init__.py\\\", line 63, in handle\\n data = endpoint(**arguments)\\n File \\\"apps/frappe/frappe/api/v1.py\\\", line 40, in handle_rpc_call\\n return frappe.handler.handle()\\n ~~~~~~~~~~~~~~~~~~~~~^^\\n File \\\"apps/frappe/frappe/handler.py\\\", line 53, in handle\\n data = execute_cmd(cmd)\\n File \\\"apps/frappe/frappe/handler.py\\\", line 86, in execute_cmd\\n return frappe.call(method, **frappe.form_dict)\\n ~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\n File \\\"apps/frappe/frappe/__init__.py\\\", line 1124, in call\\n return fn(*args, **newargs)\\n File \\\"apps/frappe/frappe/utils/typing_validations.py\\\", line 36, in wrapper\\n return func(*args, **kwargs)\\n File \\\"apps/pos_next/pos_next/api/invoices.py\\\", line 1388, in submit_invoice\\n invoice_doc.submit()\\n ~~~~~~~~~~~~~~~~~~^^\\n File \\\"apps/frappe/frappe/utils/typing_validations.py\\\", line 36, in wrapper\\n return func(*args, **kwargs)\\n File \\\"apps/frappe/frappe/model/document.py\\\", line 1270, in submit\\n return self._submit()\\n ~~~~~~~~~~~~^^\\n File \\\"apps/frappe/frappe/model/document.py\\\", line 1251, in _submit\\n return self.save()\\n ~~~~~~~~~^^\\n File \\\"apps/frappe/frappe/model/document.py\\\", line 518, in save\\n return self._save(*args, **kwargs)\\n ~~~~~~~~~~^^^^^^^^^^^^^^^^^\\n File \\\"apps/frappe/frappe/model/document.py\\\", line 572, in _save\\n self.run_post_save_methods()\\n ~~~~~~~~~~~~~~~~~~~~~~~~~~^^\\n File \\\"apps/frappe/frappe/model/document.py\\\", line 1378, in run_post_save_methods\\n self.run_method(\\\"on_submit\\\")\\n ~~~~~~~~~~~~~~~^^^^^^^^^^^^^\\n File \\\"apps/frappe/frappe/model/document.py\\\", line 1181, in run_method\\n out = Document.hook(fn)(self, *args, **kwargs)\\n File \\\"apps/frappe/frappe/model/document.py\\\", line 1578, in composer\\n return composed(self, method, *args, **kwargs)\\n File \\\"apps/frappe/frappe/model/document.py\\\", line 1556, in runner\\n add_to_return_value(self, fn(self, *args, **kwargs))\\n ~~^^^^^^^^^^^^^^^^^^^^^^^\\n File \\\"apps/frappe/frappe/model/document.py\\\", line 1178, in fn\\n return method_object(*args, **kwargs)\\n File \\\"apps/erpnext/erpnext/accounts/doctype/sales_invoice/sales_invoice.py\\\", line 448, in on_submit\\n self.validate_pos_paid_amount()\\n ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^\\n File \\\"apps/pos_next/pos_next/overrides/sales_invoice.py\\\", line 145, in validate_pos_paid_amount\\n super().validate_pos_paid_amount()\\n ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^\\n File \\\"apps/erpnext/erpnext/accounts/doctype/sales_invoice/sales_invoice.py\\\", line 542, in validate_pos_paid_amount\\n frappe.throw(_(\\\"At least one mode of payment is required for POS invoice.\\\"))\\n ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\n File \\\"apps/frappe/frappe/utils/messages.py\\\", line 148, in throw\\n msgprint(\\n ~~~~~~~~^\\n \\tmsg,\\n ^^^^\\n ...<6 lines>...\\n \\tprimary_action=primary_action,\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\n )\\n ^\\n File \\\"apps/frappe/frappe/utils/messages.py\\\", line 109, in msgprint\\n _raise_exception()\\n ~~~~~~~~~~~~~~~~^^\\n File \\\"apps/frappe/frappe/utils/messages.py\\\", line 58, in _raise_exception\\n raise exc\\nfrappe.exceptions.ValidationError: At least one mode of payment is required for POS invoice.\\n\"]","_server_messages":"[\"{\\\"message\\\":\\\"At least one mode of payment is required for POS invoice.\\\",\\\"as_table\\\":false,\\\"title\\\":\\\"Message\\\",\\\"indicator\\\":\\\"red\\\",\\\"raise_exception\\\":1,\\\"__frappe_exc_id\\\":\\\"d49a10b57fad62979a522f403d67f3f1830b6ee00cfb42d6bc7a6e0b\\\"}\"]"}
it used to work just fine, but now it's not working anymore.
Issue Search Confirmation
Bug Description
What happened?
When I try to make an on account sales invoice, I get the following error
Validation Error
At least one mode of payment is required for POS invoice.
Type: ValidationError
What did you expect to happen instead?
it should complete the sales invoice successfully.
Steps to Reproduce
Expected Behavior
the system should create the invoice successfully without any issue.
Actual Behavior
I get this error
Validation Error
At least one mode of payment is required for POS invoice.
Type: ValidationError
Screenshots / Screen Recordings
Screencast.From.2026-05-09.23-38-58.mp4
Browser Console Errors
POS Next Version
1.13.0 (Latest)
Exact Version (if known)
1.16.0
Frappe Framework Version
16.5.0
ERPNext Version
16.4.1
Browser
Firefox
Browser Version
149.0.2
Operating System
Ubuntu/Debian Linux
Deployment Type
Self-hosted (Production)
Bug Frequency
Always (100% reproducible)
Offline Mode
Not sure
Additional Context
it used to work just fine, but now it's not working anymore.
Server Logs (if applicable)
Pre-submission Checklist