From d971917ecf613d7016c4f4b95a4151cea4a5236b Mon Sep 17 00:00:00 2001 From: Saqib Ansari Date: Tue, 29 Sep 2020 14:23:48 +0530 Subject: [PATCH] feat: cancel IRN --- .../e_invoice_settings/e_invoice_settings.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/erpnext/erpnext_integrations/doctype/e_invoice_settings/e_invoice_settings.py b/erpnext/erpnext_integrations/doctype/e_invoice_settings/e_invoice_settings.py index 02a6e98957f..270e62e0022 100644 --- a/erpnext/erpnext_integrations/doctype/e_invoice_settings/e_invoice_settings.py +++ b/erpnext/erpnext_integrations/doctype/e_invoice_settings/e_invoice_settings.py @@ -154,6 +154,19 @@ class EInvoiceSettings(Document): self.handle_irn_response(data) return data + + def cancel_irn(self, irn, reason, remark=''): + endpoint = 'https://einv-apisandbox.nic.in/eicore/v1.03/Invoice/Cancel' + headers = self.get_header() + + cancel_e_inv = json.dumps(dict(Irn=irn, CnlRsn=reason, CnlRem=remark)) + enc_json = self.aes_encrypt(cancel_e_inv, self.sek) + payload = dict(Data=enc_json) + + res = make_post_request(endpoint, headers=headers, data=json.dumps(payload)) + self.handle_err_response(res) + + return res def handle_irn_response(self, data): enc_signed_invoice = data['SignedInvoice']