Invoice with IRN number and QR Code
Create a channel for Bosh on EshopBox Workspace.
Check the below conditions -
case 1: if channel id is of “bosch“ and the Integration type is 11 (For channels other than Bosch we will check if the channel supports Eshopbox shipping and is of integration type 4/7/11.)
case 2: If customer gstin is present in the DB.If both the cases 1 and 2 are satisfied then call the generate IRN Cleartax API.
url : POST {{HOST}}/einv/v1/govt/api/Invoice/
Headers:
Keys | Values |
---|---|
|
|
|
|
|
|
|
|
Query to fetch auth-token for clear tax app:
SELECT ie_appinstall_connection.accessToken
FROM ie_appinstall_connection
LEFT JOIN ie_app_installation ON ie_appinstall_connection.appInstallationId = ie_app_installation.appInstallationId
LEFT JOIN ie_app ON ie_app.appId = ie_app_installation.appId
WHERE ie_appinstall_connection.isActive = 'active'
AND ie_app.appId =:appId
AND ie_app_installation.accountSlug =:accountSlug
Sample shipment accepted Event :
{
"resource": "shipment",
"eventType": "PUT",
"eventSubType": "accepted",
"accountSlug": "raymond",
"actor": "SYSTEM",
"version": "v1",
"request_data": [],
"response_data": {
"customerOrderNumber": "6458603798895",
"orderSiteID": "",
"vendorOrderNumber": "#277004",
"externalShipmentID": "6458603798895-2804-8072",
"externalWarehouseID": "Eshopbox_Gurgaon_FC5",
"externalChannelID": "CH2804",
"externalWmsChannelName": "RAYMONDNEW SHOPIFY STORE_RAYMOND_YGGN_4458",
"external_wms_channel_id": 4458.0,
"channelLabel": "raymondNew Shopify Store",
"integrationType": "7",
"defaultWarehouseCode": "Eshopbox_Gurgaon_FC5",
"facilityLabel": "Gurgaon (YGGN)",
"flexStatus": "0",
"facilityType": "auperator",
"orderDate": "2024-10-17 16:26:17",
"portal_id": 27.0,
"paymentType": "1Cashfree Payments(UPI,Cards,Net Banking,Wallets)",
"expectedShipDate": "2024-10-18 15:00:00",
"order_id": 5.648073E7,
"channel_id": 2804.0,
"warehouse_id": 1075.0,
"channel_account_id": 0.0,
"account_id": 126.0,
"connectionId": 2337.0,
"locationId": "74033365150",
"region": "National",
"isMetro": "0",
"isSpecialplace": "0",
"invoiceNumber": "",
"boxType": "UNKNOWN",
"isPriorityShipment": "0",
"isGift": "0",
"invoice_url": "",
"label_url": "",
"labels": "",
"shippingInfo": [],
"boxAdditionalRecommendation": [],
"dimension_length": "11",
"dimension_width": "11",
"dimension_height": "16",
"weight": "347",
"chargeableWeight": "387.2",
"trackingID": "",
"trackingDomain": "track.myraymond.com",
"packageID": "",
"barcode": "",
"barcodeType": "item",
"taxAmount": 0.0,
"shipChargeAmount": 99.0,
"courierName": "Bluedart",
"cp_id": 5.0,
"created_at": "2024-10-17 16:26:30",
"updated_at": "2024-10-17 16:26:49",
"status": "accepted",
"remarks": "",
"warehousePincode": "122503",
"thirdPartyShipping": false,
"customerName": "Prajakta Magavi",
"customerContactNumber": "8857956736",
"email": "pmagavi03@gmail.com",
"channelSlug": "raymond2804",
"status_updated_at": "2024-10-17 16:26:49",
"status_log": {
"created": "2024-10-17 16:26:30",
"accepted": "2024-10-17 16:26:49"
},
"status_log_first_occurrence": {
"accepted": "2024-10-17 16:26:49",
"created": "2024-10-17 16:26:30"
},
"status_log_count": {
"created": 1.0,
"accepted": 1.0
},
"status_log_id": "221397564",
"orderExternalCreatedAt": "2024-10-17 16:26:26",
"riskScore": "Low",
"riskScoreReasons": [],
"weightProtectionShieldFlag": false,
"pincodeServiceableRemarks": "",
"orderAdditionalInfo": "",
"shippingAddress": {
"customerName": "Prajakta Magavi",
"addressLine1": "1022, North Kasba, Masre galli, Balives, Solapur",
"addressLine2": "null",
"city": "Solapur",
"state": "Maharashtra",
"postalCode": "413007",
"countryCode": "IN",
"countryName": "INDIA",
"contactPhone": "8857956736",
"email": "pmagavi03@gmail.com"
},
"billingAddress": {
"customerName": "Prajakta Magavi",
"email": "pmagavi03@gmail.com",
"contactPhone": "8857956736"
},
"warehouseAddress": {
"addressLine1": "Khasra no 100/8, 12, 13/1, 13/2,18,19, tehsil Pataudi",
"addressLine2": "Village Jatauli, Hailemandi",
"city": "Gurugram",
"state": "Haryana",
"postalCode": "122503",
"gstin": "06AAKCD1650N2ZF"
},
"recommendedPackage": {
"id": 774.0,
"package_id": "Ou5JvblnG1",
"package_code": "PL3111116",
"package_description": "CORRUGATED BOX 3PLY 11X11X16 CM",
"account_id": 126.0,
"package_type": "box",
"status": "verified",
"package_verification": "ON",
"availability": "1",
"length": 11.0,
"width": 11.0,
"height": 16.0,
"dead_weight": 64.0,
"volumetric_weight": 0.3872,
"length_imageurl": "https://storage.googleapis.com/eshopbox_uploads_prod/settings_packaging/11x11x16_L_240910100910910-4606.jpg",
"width_imageurl": "https://storage.googleapis.com/eshopbox_uploads_prod/settings_packaging/11x11x16_B_240910100912912-4168.jpg",
"height_imageurl": "https://storage.googleapis.com/eshopbox_uploads_prod/settings_packaging/11x11x16_H_240910100916916-3712.jpg",
"dead_weight_imageurl": "https://storage.googleapis.com/eshopbox_uploads_prod/settings_packaging/11x11x16_Wt_240912061846946-8607.jpg",
"created_at": "2024-07-10 08:09:30",
"updated_at": "2024-09-19 17:37:29",
"shipment_additional_details_id": 1572906.0,
"shipmentAdditionalDetailPackage": ""
},
"eshopboxCourier": true,
"courier_account": "ESB_Bluedart_Forward",
"shippingMode": "express",
"totalItemsWeight": 283.0,
"portalUrl": "https://encrypted-tbn0.gstatic.com/images?q\u003dtbn:ANd9GcSMTVs0QAk8zn1HybVnMWMKrX_FcoDdOjYLvigHG38Y6GSpxl2m1xHAV7q1EUyEgn-kwpk\u0026usqp\u003dCAU",
"id": 2.4611055E7,
"orderTotal": 698.5,
"subTotal": 599.5,
"isCOD": "0",
"track_payload": [],
"itemsWeightProtectionShieldFlag": false,
"productDimensions": {
"length": 33.0,
"width": 24.0,
"weight": 283.0,
"height": 2.0
},
"items": [
{
"order_item_id": 4.0283548E7,
"lineItemSequenceNumber": 1.7755209859439E13,
"orderItemID": "6458603798895-40283548",
"itemID": "45816118378654",
"sku": "44VLT3HMCJV",
"asin": "",
"productName": "Parx Men Black Regular Fit Solid Contrast Neck T-Shirt",
"quantity": 1.0,
"orderItemCreatedAt": "2024-10-17 16:26:26",
"customerPrice": 599.5,
"lineItemTotal": 599.5,
"invoiceTotal": 698.5,
"cashOnDeliveryCharges": 0.0,
"discount": 0.0,
"taxRate": 0.0,
"taxAmount": 0.0,
"inventoryItemCode": "",
"giftMessage": "",
"isGift": "0",
"giftLabelContent": "",
"lineItemOrderStatus": "",
"orderItemIDs": [
"6458603798895-40283548"
],
"productImageUrl": "https://cdn.shopify.com/s/files/1/0644/5944/0286/files/XMKY06001-K8-1.jpg?v\u003d1714486380",
"productAdditionalInfo": {
"size": "44 / Black",
"productDetails": {
"unitPrice": 299.75,
"hsnCode": "61099090",
"dimensionHeight": 2.0,
"dimensionLength": 33.0,
"dimensionUnit": "cm",
"description": "Parx Black T-Shirt",
"weight": 283.0,
"weight_dimension_status": "unverified",
"mrp": 1199.0,
"dimensionWidth": 24.0,
"type": "BASE",
"verticalName": "Apparels",
"imageUrl": "https://i.ibb.co/8sFQZKt/XMKY06001-K8-1.jpg",
"accountSlug": "raymond",
"sku": "XMKY06001-K882F044",
"esin": "44VLT3HMCJV",
"brand": "Parx",
"additionalNames": {
"ean": "8905573268548",
"upc": "XMKY06001-K882F044",
"others": [
"XMKY06001-K882F044"
]
},
"groupCode": "XMKY06001-K8",
"status": "ACTIVE",
"weightUnit": "g"
}
},
"shippingCharges": 99.0,
"isVirtualKit": "0",
"component": [],
"onhold": "0",
"cancellationAdditionalReason": "",
"cancellationReason": "",
"customerOrderItemID": "",
"recallBlockedInventoryUsed": ""
}
],
"balanceDue": 0.0
},
"previous_data": [],
"resource_type": "shipment.update",
"account_slug": "raymond",
"custom": []
}
Request Body Mapping:
Key | Value | Type | Mandatory | Description |
---|---|---|---|---|
|
| String | Yes |
|
|
| Map | Yes |
|
|
| String | Yes |
|
|
| String | Yes |
|
| ‘Y' or 'N’ | String |
|
|
|
|
|
|
|
| N |
|
|
|
|
| Map | Yes |
|
|
| String | Yes |
|
| Invoice number | String | Yes | We generate it |
| Invoice Date | String | Yes | current time |
|
| Map | Yes | from getSellerDtls query mentioned below which is already being fetched in invoice flow |
|
| String | Yes | from getSellerDtls query mentioned below which is already being fetched in invoice flow |
|
| String | Yes | from getSellerDtls query mentioned below which is already being fetched in invoice flow |
|
| String | Yes | from getSellerDtls query mentioned below which is already being fetched in invoice flow |
|
| String |
| from getSellerDtls query mentioned below which is already being fetched in invoice flow |
|
| String | Yes | from getSellerDtls query mentioned below which is already being fetched in invoice flow |
|
| String | Yes |
|
|
| String | Yes |
|
|
|
|
| from getSellerDtls query mentioned below which is already being fetched in invoice flow |
|
|
|
| from getSellerDtls query mentioned below which is already being fetched in invoice flow |
|
| Map | Yes |
|
|
|
| Yes | orders.gstin |
|
|
| Yes |
|
|
|
|
|
|
|
|
| Yes |
|
|
|
| Yes | |
|
|
|
| |
|
|
|
|
|
|
|
| Yes |
|
|
|
| Yes |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| String | Yes |
|
|
| String | Yes | |
|
| String |
| |
|
| String | Yes |
|
|
| String | Yes |
|
|
| String | Yes |
|
|
| Object |
|
|
|
|
|
|
|
|
|
| Yes | legal name |
|
|
|
|
|
|
|
| Yes |
|
|
|
|
|
|
|
|
| Yes |
|
|
|
| Yes |
|
|
|
| Yes |
|
|
| Object | Yes | We get it from the eventBody |
|
| String | Yes |
|
|
| String |
|
|
| minLength: 1 maxLength: 1, Values: "Y", "N" |
|
|
|
|
|
| Yes |
|
|
|
| No | Barcode |
| orderItems.quantity |
| No | Quantity |
|
|
| No |
|
|
|
|
|
|
| Items.lineItemTotal | Double | Yes |
|
| orderItems.lineItemTotal | Double | Yes |
|
| Items.discount | Double |
|
|
|
| Double |
|
|
|
| Double | Yes |
|
| orderItems.integratedGstPercentage | Double | Yes |
|
| orderItems.igst | Double |
| Conditional. Amount of IGST payable |
| orderItems.cgst | Double |
| Conditional. Amount of CGST payable. fetch value from db |
| orderItems.sgst | Double |
| Conditional. Amount of SGST payable fetch value from db |
| order_lines.tax_summary.cess_percentage | Float |
| Optional. Cess Rate compensationCessPercentage |
| order_lines.tax_summary.cess_amount | Double |
| Optional. Cess Amount(advolorem) on basis of rate and quantity of item (Add column in db) |
| leave blank | Double |
| Optional. Cess Non-Advol Amount |
| leave blank | Float |
| Optional. State Cess Rate |
| leave blank | Double |
| Optional. State Cess Amount |
| leave blank | Double |
| Optional. State CESS Non advol Amount |
| leave blank | Double |
| Optional. Other Charges on line item. |
|
| Double | Yes | Mandatory. Total Item Value = AssAmt + IgstAmt + CgstAmt + SgstAmt + CesAmt + CesNonAdvlAmt + StateCesAmt + StateCesNonAdvlAmt + OthChrg |
|
| String |
| Optional. Order line referencee |
|
| String |
| Optional. Origin Country Code. Refer to Country master. |
|
| String |
| Optional. Serial number in case of each item having a unique number. |
|
| Object |
| Optional. Batch details object. See below. (Create a task in backlog) |
|
| Object |
| Optional. List of one or more Attribute Details object. See below. (Ignore) |
|
| String |
| Mandatory. Batch number |
|
| String |
| Optional. Batch Expiry Date |
|
| String |
| Optional. Warranty Date |
|
| String |
| Optional. Attribute details of the item |
|
| String |
| Optional. Attribute details of the item |
|
| Object |
|
|
|
| Double |
| Conditional. Total SGST value of all items |
|
| Double |
| Conditional. Total IGST value of all items |
|
| Double |
| Optional. Total CESS value of all items |
| Ignore | Double |
| Optional. Total State CESS value of all items |
|
| Double |
| Optional. Total invoice Discount |
|
| Double |
| Optional. Other charges |
|
| float |
| Optional. Rounding off amount (Put in backlog) |
|
| Double |
| Mandatory. Final Invoice value |
|
| Double |
| Optional. Final Invoice value in Additional Currency |
fetch sellers details by below query
SELECT
warehouses.address_line_1 AS addressLine1,
warehouses.address_line_2 AS addressLine2,
warehouses.city,
warehouses.state,
warehouses.country,
warehouses.pincode,
account_warehouse_mapping.requestDocuments,
party.party_name AS accountName,
party.gstin AS gstin,
account_warehouse_mapping.qrcodeDetails,
facility.isSelfDeliveryEnabled,
party.companyName AS companyName
FROM
warehouses
LEFT JOIN
external_wms_channels ON external_wms_channels.warehouse_id = warehouses.id
LEFT JOIN
party ON party.id = external_wms_channels.billing_party_id
LEFT JOIN
facility ON warehouses.facility_id = facility.id
LEFT JOIN
accounts ON accounts.id = party.account_id
LEFT JOIN
account_warehouse_mapping ON account_warehouse_mapping.account_id = party.account_id
WHERE
account_warehouse_mapping.warehouse_id = :warehouse_id
AND external_wms_channels.externalWmsChannelName = :externalWmsChannelName
GROUP BY
party.id;
The following tax columns have been added to the existing query that fetches order details:
SGST
IGST
CgstAmt
UTGST
Gst rate
SELECT
order_items.id,
order_items.quantity,
order_items.invoiceTotal,
order_items.giftWrapCharges,
order_items.shippingCharges,
order_items.sku,
order_items.cgst,
order_items.igst,
order_items.utgst,
order_items.sgst,
order_items.centralGstPercentage,
order_items.integratedGstPercentage,
order_items.stateGstPercentage,
orders.orderTotal,
order_items.productName,
orders.customerOrderNumber,
orders.vendorOrderNumber,
orders.shipping_addressLine1,
orders.shipping_addressLine2,
orders.shipping_city,
orders.shipping_state,
orders.shipping_postalCode,
orders.shipping_countryName,
orders.shipping_customerName AS shippingCustomerName,
orders.billing_customerName AS billingCustomerName,
orders.billing_addressLine1,
orders.billing_addressLine2,
orders.billing_city,
orders.billing_state,
orders.billing_postalCode,
orders.billing_countryName,
orders.orderDate,
orders.shipChargeAmount,
orders.balanceDue,
orders.channel_id,
order_items.orderItemID AS orderItemId,
order_items.itemID AS itemId,
order_additional_details.receipt AS receipt,
orders.gstin AS customerGstin
FROM
order_items
LEFT JOIN
orders ON orders.id = order_items.order_id
LEFT JOIN
order_additional_details ON order_additional_details.order_id = orders.id
LEFT JOIN
shipments ON shipments.order_id = orders.id
WHERE
shipments.id = :shipmentId
AND orders.customerOrderNumber = :customerOrderNumber
AND orders.channel_id = :channelId
GROUP BY
order_items.id
Request Body:
{
"Version": "1.1",
"TranDtls": {
"TaxSch": "GST",
"SupTyp": "B2B",
"RegRev": "Y",
"EcmGstin": null,
"IgstOnIntra": "N"
},
"DocDtls": {
"Typ": "INV",
"No": "DOC/007",
"Dt": "12/12/2020"
},
"SellerDtls": {
"Gstin": "24AAFCD5862R005",
"LglNm": "NIC company pvt ltd",
"TrdNm": "NIC Industries",
"Addr1": "5th block, kuvempu layout",
"Addr2": "kuvempu layout",
"Loc": "GANDHINAGAR",
"Pin": 382010,
"Stcd": "24",
"Ph": "9000000000",
"Em": "abc@gmail.com"
},
"BuyerDtls": {
"Gstin": "29AWGPV7107B1Z1",
"LglNm": "XYZ company pvt ltd",
"TrdNm": "XYZ Industries",
"Pos": "12",
"Addr1": "7th block, kuvempu layout",
"Addr2": "kuvempu layout",
"Loc": "GANDHINAGAR",
"Pin": 562160,
"Stcd": "29",
"Ph": "91111111111",
"Em": "xyz@yahoo.com"
},
"DispDtls": {
"Nm": "ABC company pvt ltd",
"Addr1": "7th block, kuvempu layout",
"Addr2": "kuvempu layout",
"Loc": "Banagalore",
"Pin": 562160,
"Stcd": "29"
},
"ShipDtls": {
"Gstin": "29AWGPV7107B1Z1",
"LglNm": "CBE company pvt ltd",
"TrdNm": "kuvempu layout",
"Addr1": "7th block, kuvempu layout",
"Addr2": "kuvempu layout",
"Loc": "Banagalore",
"Pin": 562160,
"Stcd": "29"
},
"ItemList": [
{
"SlNo": "1",
"PrdDesc": "Rice",
"IsServc": "N",
"HsnCd": "10019920",
"Barcde": "123456",
"Qty": 100.345,
"FreeQty": 10,
"Unit": "BAG",
"UnitPrice": 99.545,
"TotAmt": 9988.84,
"Discount": 10,
"PreTaxVal": 1,
"AssAmt": 9978.84,
"GstRt": 12.0,
"IgstAmt": 1197.46,
"CgstAmt": 0,
"SgstAmt": 0,
"CesRt": 5,
"CesAmt": 498.94,
"CesNonAdvlAmt": 10,
"StateCesRt": 12,
"StateCesAmt": 1197.46,
"StateCesNonAdvlAmt": 5,
"OthChrg": 10,
"TotItemVal": 12897.7,
"OrdLineRef": "3256",
"OrgCntry": "AG",
"PrdSlNo": "12345",
"BchDtls": {
"Nm": "123456",
"ExpDt": "01/08/2020",
"WrDt": "01/09/2020"
},
"AttribDtls": [
{
"Nm": "Rice",
"Val": "10000"
}
]
}
],
"ValDtls": {
"AssVal": 9978.84,
"CgstVal": 0,
"SgstVal": 0,
"IgstVal": 1197.46,
"CesVal": 508.94,
"StCesVal": 1202.46,
"Discount": 10,
"OthChrg": 20,
"RndOffAmt": 0.3,
"TotInvVal": 12908,
"TotInvValFc": 12897.7
},
"PayDtls": {
"Nm": "ABCDE",
"AccDet": "5697389713210",
"Mode": "Cash",
"FinInsBr": "SBIN11000",
"PayTerm": "100",
"PayInstr": "Gift",
"CrTrn": "test",
"DirDr": "test",
"CrDay": 100,
"PaidAmt": 10000,
"PaymtDue": 5000
},
"RefDtls": {
"InvRm": "TEST",
"DocPerdDtls": {
"InvStDt": "12/12/2020",
"InvEndDt": "12/12/2020"
},
"PrecDocDtls": [
{
"InvNo": "DOC/002",
"InvDt": "12/12/2020",
"OthRefNo": "123456"
}
],
"ContrDtls": [
{
"RecAdvRef": "Doc/003",
"RecAdvDt": "01/08/2020",
"TendRefr": "Abc001",
"ContrRefr": "Co123",
"ExtRefr": "Yo456",
"ProjRefr": "Doc-456",
"PORefr": "Doc-789",
"PORefDt": "01/08/2020"
}
]
},
"AddlDocDtls": [
{
"Url": "https://einv-apisandbox.nic.in",
"Docs": "Test Doc",
"Info": "Document Test"
}
],
"ExpDtls": {
"ShipBNo": "A-248",
"ShipBDt": "12/12/2020",
"Port": "INABG1",
"RefClm": "N",
"ForCur": "AED",
"CntCode": "AE"
},
"EwbDtls": {
"TransId": "12AWGPV7107B1Z1",
"TransName": "XYZ EXPORTS",
"Distance": 100,
"TransDocNo": "DOC01",
"TransDocDt": "12/12/2020",
"VehNo": "ka123456",
"VehType": "R",
"TransMode": "1"
}
}
Response:
Success response:
{
"Success": "Y",
"AckNo": 162010000001700,
"AckDt": "2020-08-08 11:23:00",
"Irn": "58f1669d31c5725ddcc39eeecd465e69543c639daeb1d582546aa3d28d66c3f8",
"SignedInvoice": "eyJhbGciOiJSUzI1NiIsImtpZCI6IjExNUY0NDI2NjE3QTc5MzhCRTFCQTA2REJFRTkxQTQyNzU4NEVEQUIiLCJ0eXAiOiJKV1QiLCJ4NXQiOiJFVjlFSm1GNmVUaS1HNkJ0dnVrYVFuV0U3YXMifQ.eyJkYXRhIjoie1wiQWNrTm9cIjoxNjIwMTAwMDAwMDE3MDAsXCJBY2tEdFwiOlwiMjAyMC0wOC0wOCAxMToyMzowMFwiLFwiSXJuXCI6XCI1OGYxNjY5ZDMxYzU3MjVkZGNjMzllZWVjZDQ2NWU2OTU0M2M2MzlkYWViMWQ1ODI1NDZhYTNkMjhkNjZjM2Y4XCIsXCJWZXJzaW9uXCI6XCIxLjAxXCIsXCJUcmFuRHRsc1wiOntcIlRheFNjaFwiOlwiR1NUXCIsXCJTdXBUeXBcIjpcIkIyQlwiLFwiUmVnUmV2XCI6XCJZXCIsXCJJZ3N0T25JbnRyYVwiOlwiTlwifSxcIkRvY0R0bHNcIjp7XCJUeXBcIjpcIklOVlwiLFwiTm9cIjpcIkRPQy8wMDdcIixcIkR0XCI6XCIwOC8wOC8yMDIwXCJ9LFwiU2VsbGVyRHRsc1wiOntcIkdzdGluXCI6XCIyNEFBRkNENTg2MlIwMDVcIixcIkxnbE5tXCI6XCJOSUMgY29tcGFueSBwdnQgbHRkXCIsXCJUcmRObVwiOlwiTklDIEluZHVzdHJpZXNcIixcIkFkZHIxXCI6XCI1dGggYmxvY2ssIGt1dmVtcHUgbGF5b3V0XCIsXCJBZGRyMlwiOlwia3V2ZW1wdSBsYXlvdXRcIixcIkxvY1wiOlwiR0FOREhJTkFHQVJcIixcIlBpblwiOjM4MjAxMCxcIlN0Y2RcIjpcIjI0XCIsXCJQaFwiOlwiOTAwMDAwMDAwMFwiLFwiRW1cIjpcImFiY0BnbWFpbC5jb21cIn0sXCJCdXllckR0bHNcIjp7XCJHc3RpblwiOlwiMjlBV0dQVjcxMDdCMVoxXCIsXCJMZ2xObVwiOlwiWFlaIGNvbXBhbnkgcHZ0IGx0ZFwiLFwiVHJkTm1cIjpcIlhZWiBJbmR1c3RyaWVzXCIsXCJQb3NcIjpcIjEyXCIsXCJBZGRyMVwiOlwiN3RoIGJsb2NrLCBrdXZlbXB1IGxheW91dFwiLFwiQWRkcjJcIjpcImt1dmVtcHUgbGF5b3V0XCIsXCJMb2NcIjpcIkdBTkRISU5BR0FSXCIsXCJQaW5cIjo1NjIxNjAsXCJQaFwiOlwiOTExMTExMTExMTFcIixcIkVtXCI6XCJ4eXpAeWFob28uY29tXCIsXCJTdGNkXCI6XCIyOVwifSxcIkRpc3BEdGxzXCI6e1wiTm1cIjpcIkFCQyBjb21wYW55IHB2dCBsdGRcIixcIkFkZHIxXCI6XCI3dGggYmxvY2ssIGt1dmVtcHUgbGF5b3V0XCIsXCJBZGRyMlwiOlwia3V2ZW1wdSBsYXlvdXRcIixcIkxvY1wiOlwiQmFuYWdhbG9yZVwiLFwiUGluXCI6NTYyMTYwLFwiU3RjZFwiOlwiMjlcIn0sXCJTaGlwRHRsc1wiOntcIkdzdGluXCI6XCIyOUFXR1BWNzEwN0IxWjFcIixcIkxnbE5tXCI6XCJDQkUgY29tcGFueSBwdnQgbHRkXCIsXCJUcmRObVwiOlwia3V2ZW1wdSBsYXlvdXRcIixcIkFkZHIxXCI6XCI3dGggYmxvY2ssIGt1dmVtcHUgbGF5b3V0XCIsXCJBZGRyMlwiOlwia3V2ZW1wdSBsYXlvdXRcIixcIkxvY1wiOlwiQmFuYWdhbG9yZVwiLFwiUGluXCI6NTYyMTYwLFwiU3RjZFwiOlwiMjlcIn0sXCJJdGVtTGlzdFwiOlt7XCJJdGVtTm9cIjoxLFwiU2xOb1wiOlwiMVwiLFwiSXNTZXJ2Y1wiOlwiTlwiLFwiUHJkRGVzY1wiOlwiUmljZVwiLFwiSHNuQ2RcIjpcIjEwMDFcIixcIkJhcmNkZVwiOlwiMTIzNDU2XCIsXCJRdHlcIjoxMDAuMzQ1LFwiRnJlZVF0eVwiOjEwLjAsXCJVbml0XCI6XCJCQUdcIixcIlVuaXRQcmljZVwiOjk5LjU0NSxcIlRvdEFtdFwiOjk5ODguODQsXCJEaXNjb3VudFwiOjEwLFwiUHJlVGF4VmFsXCI6MSxcIkFzc0FtdFwiOjk5NzguODQsXCJHc3RSdFwiOjEyLjAwMCxcIklnc3RBbXRcIjoxMTk3LjQ2LFwiQ2dzdEFtdFwiOjAsXCJTZ3N0QW10XCI6MCxcIkNlc1J0XCI6NS4wMDAsXCJDZXNBbXRcIjo0OTguOTQsXCJDZXNOb25BZHZsQW10XCI6MTAsXCJTdGF0ZUNlc1J0XCI6MTIuMDAwLFwiU3RhdGVDZXNBbXRcIjoxMTk3LjQ2LFwiU3RhdGVDZXNOb25BZHZsQW10XCI6NSxcIk90aENocmdcIjoxMCxcIlRvdEl0ZW1WYWxcIjoxMjg5Ny43LFwiT3JkTGluZVJlZlwiOlwiMzI1NlwiLFwiT3JnQ250cnlcIjpcIkFHXCIsXCJQcmRTbE5vXCI6XCIxMjM0NVwiLFwiQmNoRHRsc1wiOntcIk5tXCI6XCIxMjM0NTZcIn0sXCJBdHRyaWJEdGxzXCI6W3tcIk5tXCI6XCJSaWNlXCIsXCJWYWxcIjpcIjEwMDAwXCJ9XX1dLFwiVmFsRHRsc1wiOntcIkFzc1ZhbFwiOjk5NzguODQsXCJDZ3N0VmFsXCI6MCxcIlNnc3RWYWxcIjowLFwiSWdzdFZhbFwiOjExOTcuNDYsXCJDZXNWYWxcIjo1MDguOTQsXCJTdENlc1ZhbFwiOjEyMDIuNDYsXCJEaXNjb3VudFwiOjEwLFwiT3RoQ2hyZ1wiOjIwLFwiUm5kT2ZmQW10XCI6MC4zLFwiVG90SW52VmFsXCI6MTI5MDgsXCJUb3RJbnZWYWxGY1wiOjEyODk3Ljd9LFwiUGF5RHRsc1wiOntcIk5tXCI6XCJBQkNERVwiLFwiTW9kZVwiOlwiQ2FzaFwifSxcIlJlZkR0bHNcIjp7XCJJbnZSbVwiOlwiVEVTVFwiLFwiRG9jUGVyZER0bHNcIjp7XCJJbnZTdER0XCI6XCIwMS8wOC8yMDIwXCIsXCJJbnZFbmREdFwiOlwiMDEvMDkvMjAyMFwifSxcIlByZWNEb2NEdGxzXCI6W3tcIkludk5vXCI6XCJET0MvMDAyXCIsXCJJbnZEdFwiOlwiMDEvMDgvMjAyMFwiLFwiT3RoUmVmTm9cIjpcIjEyMzQ1NlwifV0sXCJDb250ckR0bHNcIjpbe1wiUmVjQWR2RHRcIjpcIjAxLzA4LzIwMjBcIn1dfSxcIkFkZGxEb2NEdGxzXCI6W3tcIlVybFwiOlwiaHR0cHM6Ly9laW52LWFwaXNhbmRib3gubmljLmluXCIsXCJEb2NzXCI6XCJUZXN0IERvY1wiLFwiSW5mb1wiOlwiRG9jdW1lbnQgVGVzdFwifV0sXCJFeHBEdGxzXCI6e1wiU2hpcEJOb1wiOlwiQS0yNDhcIixcIlNoaXBCRHRcIjpcIjAxLzA4LzIwMjBcIixcIlBvcnRcIjpcIklOQUJHMVwiLFwiUmVmQ2xtXCI6XCJOXCIsXCJGb3JDdXJcIjpcIkFFRFwiLFwiQ250Q29kZVwiOlwiQUVcIn0sXCJFd2JEdGxzXCI6e1wiVHJhbnNJZFwiOlwiMTJBV0dQVjcxMDdCMVoxXCIsXCJUcmFuc05hbWVcIjpcIlhZWiBFWFBPUlRTXCIsXCJUcmFuc01vZGVcIjpcIjFcIixcIkRpc3RhbmNlXCI6MTAwLFwiVHJhbnNEb2NOb1wiOlwiRE9DMDFcIixcIlRyYW5zRG9jRHRcIjpcIjA4LzA4LzIwMjBcIixcIlZlaE5vXCI6XCJrYTEyMzQ1NlwiLFwiVmVoVHlwZVwiOlwiUlwifX0iLCJpc3MiOiJOSUMifQ.qLdolsRy-W00xbHzME5U65jRf9c6R3tYTnEYzMG2hEZdBmFQzPCnw-T273OW_EmRUrYlp-7XjHRbInoW-kTfIieJpWfH20sSnf_siQO19YgbtoRuXQNE7uig7TqpJMGAIHH5QsAI1QLzJj1m98NucKGUcXhk2906MLtqHKMb5Ug0InaP4JweX2Dfmiqj5RiN5dLBFfIpgWhGT_2fSJBWdRg8w9CoQZwhdqN-2sP_SHdgNDzdH6eHtTp5eMyyLJNKA7estyqNoNvl8EpZHHeDZiISE4JXCf6yBq_8BaNKE9bsN_VCua_WCcBcNxYH3373F275PQhxybRMrGAntdUiNQ",
"SignedQRCode": "eyJhbGciOiJSUzI1NiIsImtpZCI6IjExNUY0NDI2NjE3QTc5MzhCRTFCQTA2REJFRTkxQTQyNzU4NEVEQUIiLCJ0eXAiOiJKV1QiLCJ4NXQiOiJFVjlFSm1GNmVUaS1HNkJ0dnVrYVFuV0U3YXMifQ.eyJkYXRhIjoie1wiU2VsbGVyR3N0aW5cIjpcIjI0QUFGQ0Q1ODYyUjAwNVwiLFwiQnV5ZXJHc3RpblwiOlwiMjlBV0dQVjcxMDdCMVoxXCIsXCJEb2NOb1wiOlwiRE9DLzAwN1wiLFwiRG9jVHlwXCI6XCJJTlZcIixcIkRvY0R0XCI6XCIwOC8wOC8yMDIwXCIsXCJUb3RJbnZWYWxcIjoxMjkwOCxcIkl0ZW1DbnRcIjoxLFwiTWFpbkhzbkNvZGVcIjpcIjEwMDFcIixcIklyblwiOlwiNThmMTY2OWQzMWM1NzI1ZGRjYzM5ZWVlY2Q0NjVlNjk1NDNjNjM5ZGFlYjFkNTgyNTQ2YWEzZDI4ZDY2YzNmOFwifSIsImlzcyI6Ik5JQyJ9.aQYuyV9pQzBaaFQUPJloj76GxEOVZ7xJCy09yxQIaL2gjPu16QcRNGksIlH3LBPFkA1b0wSNbi7e-nek65Pv5JHbyPjt4ihw9Z-YPqyzOdOU26lDP4ci0Ea_B1pSmOIv8itroLf2zVx5w6eUUqNYffI9h_JMF-E_BD0DoLE-axLvl-NM1Xb7kBFMQyzK-Y8AlXQEf_oAOxZcxqR8amJfIrN4mSTbcjcfUxT_16DECTW0Bbm83BFi1jtf_CQX4qZio-4WPCKbo1iZNzD9LXzAd8nt9ErzAqud8pKFWTHo3fVcX7TdfSc19G6PIk7GWy3FeQCvC_sZSkWfOR9eOJowNQ",
"Status": "ACT",
"EwbNo": 681008686014,
"EwbDt": "2020-08-08 11:23:00",
"EwbValidTill": "2020-08-09 23:59:00"
}
Failure response:
{
"ewbStatus": "GENERATED",
"Success": "Y",
"AckNo": 112010014464044,
"AckDt": "2020-10-14 11:34:00",
"Irn": "2dabdbd3755371a739d244b4914a5ac6428d10214509840a298dbea79f71af3e",
"SignedInvoice": "eyJhbGciOiJSUzI1NiIsImtpZCI6IkVEQzU3REUxMzU4QjMwMEJBOUY3OTM0MEE2Njk2ODMxRjNDODUwNDciLCJ0eXAiOiJKV1QiLCJ4NXQiOiI3Y1Y5NFRXTE1BdXA5NU5BcG1sb01mUElVRWMifQ.eyJkYXRhIjoie1wiQWNrTm9cIjoxMTIwMTAwMTQ0NjQwNDQsXCJBY2tEdFwiOlwiMjAyMC0xMC0xNCAxMTozNDowMFwiLFwiSXJuXCI6XCIyZGFiZGJkMzc1NTM3MWE3MzlkMjQ0YjQ5MTRhNWFjNjQyOGQxMDIxNDUwOTg0MGEyOThkYmVhNzlmNzFhZjNlXCIsXCJWZXJzaW9uXCI6XCIxLjFcIixcIlRyYW5EdGxzXCI6e1wiVGF4U2NoXCI6XCJHU1RcIixcIlN1cFR5cFwiOlwiRVhQV09QXCIsXCJSZWdSZXZcIjpcIk5cIixcIklnc3RPbkludHJhXCI6XCJOXCJ9LFwiRG9jRHRsc1wiOntcIlR5cFwiOlwiSU5WXCIsXCJOb1wiOlwiMTA3MDA5MzQ1XCIsXCJEdFwiOlwiMTMvMTAvMjAyMFwifSxcIlNlbGxlckR0bHNcIjp7XCJHc3RpblwiOlwiMjlBQUZDRDU4NjJSMDAwXCIsXCJMZ2xObVwiOlwiTklDIGNvbXBhbnkgcHZ0IGx0ZFwiLFwiVHJkTm1cIjpcIk5JQyBJbmR1c3RyaWVzXCIsXCJBZGRyMVwiOlwiNXRoIGJsb2NrLCBrdXZlbXB1IGxheW91dFwiLFwiQWRkcjJcIjpcImt1dmVtcHUgbGF5b3V0XCIsXCJMb2NcIjpcIkdBTkRISU5BR0FSXCIsXCJQaW5cIjo1NjAwMzcsXCJTdGNkXCI6XCIyOVwiLFwiUGhcIjpcIjkwMDAwMDAwMDBcIixcIkVtXCI6XCJhYmNAZ21haWwuY29tXCJ9LFwiQnV5ZXJEdGxzXCI6e1wiR3N0aW5cIjpcIlVSUFwiLFwiTGdsTm1cIjpcIlNIQU5HSEFJIFFJRElBTiBDSEVNSUNBTFMgQ08uIExURFwiLFwiVHJkTm1cIjpcIlNIQU5HSEFJIFFJRElBTiBDSEVNSUNBTFMgQ08uIExURFwiLFwiUG9zXCI6XCI5NlwiLFwiQWRkcjFcIjpcIlJNIDQwNywgQlVJTERJTkcgMywsIEFJSklBIElOVEVSTkFUSU9OQUwgTUFOU0lPTiBOTy4gMjg4XCIsXCJBZGRyMlwiOlwiV1VIVUEgUk9BRCBTSEFOR0hBSSwgQ0hJTkFcIixcIkxvY1wiOlwidGVzdFwiLFwiUGluXCI6OTk5OTk5LFwiU3RjZFwiOlwiOTZcIn0sXCJJdGVtTGlzdFwiOlt7XCJJdGVtTm9cIjowLFwiU2xOb1wiOlwiMDAwMDEwXCIsXCJJc1NlcnZjXCI6XCJOXCIsXCJQcmREZXNjXCI6XCJBU0NPUkJZTCBQQUwgMjVLZy4gRFJVTSAoTk9OIE1CKVwiLFwiSHNuQ2RcIjpcIjI5MzYyNzAwXCIsXCJRdHlcIjoxMC4wLFwiVW5pdFwiOlwiS0dTXCIsXCJVbml0UHJpY2VcIjo2NDguNzQsXCJUb3RBbXRcIjo2NDg3LjM3LFwiQXNzQW10XCI6NjQ4Ny4zNyxcIkdzdFJ0XCI6MC4wMCxcIklnc3RBbXRcIjowLjAwLFwiVG90SXRlbVZhbFwiOjY0ODcuMzcsXCJCY2hEdGxzXCI6e1wiTm1cIjpcIkFBUzAxNEwwMDVcIn19XSxcIlZhbER0bHNcIjp7XCJBc3NWYWxcIjo2NDg3LjM3LFwiVG90SW52VmFsXCI6NjQ4Ny4zNyxcIlRvdEludlZhbEZjXCI6NjQ4Ny4zN30sXCJFeHBEdGxzXCI6e1wiRm9yQ3VyXCI6XCJVU0RcIixcIkNudENvZGVcIjpcIkNOXCJ9fSIsImlzcyI6Ik5JQyJ9.bxFZYJttN_aLYgDlPnzv2LhuQJE1bDr53aH0g2HIPyY9AxgojxuJSNu1jj3GRx6HfnxDkFPi0fY1cTzq24OHNrt8g4jjz_IaAY3mEYRIC-ao5u5nbFgG8VcCBX4q3hCP2OhHIBYqGAkRE-Glxtx0Nyhf10XPGhBS_0TDWl1jU8yw2K8PswVaBH4uYp6E2gs8HDyv4OW5kkIWA-MC4LxQDRP8TMF2hF9_4mETDyZXrWuaN-ELdMl41hfxdpqebNJBKPSqiDjB-Y5gVuuKmivimn8FTj20m6tWNcLPvsgIBBzzYQyWCVw70TM7PSOpQvloFg1kJMT9Fs7merEsnccb-Q",
"SignedQRCode": "eyJhbGciOiJSUzI1NiIsImtpZCI6IkVEQzU3REUxMzU4QjMwMEJBOUY3OTM0MEE2Njk2ODMxRjNDODUwNDciLCJ0eXAiOiJKV1QiLCJ4NXQiOiI3Y1Y5NFRXTE1BdXA5NU5BcG1sb01mUElVRWMifQ.eyJkYXRhIjoie1wiU2VsbGVyR3N0aW5cIjpcIjI5QUFGQ0Q1ODYyUjAwMFwiLFwiQnV5ZXJHc3RpblwiOlwiVVJQXCIsXCJEb2NOb1wiOlwiMTA3MDA5MzQ1XCIsXCJEb2NUeXBcIjpcIklOVlwiLFwiRG9jRHRcIjpcIjEzLzEwLzIwMjBcIixcIlRvdEludlZhbFwiOjY0ODcuMzcsXCJJdGVtQ250XCI6MSxcIk1haW5Ic25Db2RlXCI6XCIyOTM2MjcwMFwiLFwiSXJuXCI6XCIyZGFiZGJkMzc1NTM3MWE3MzlkMjQ0YjQ5MTRhNWFjNjQyOGQxMDIxNDUwOTg0MGEyOThkYmVhNzlmNzFhZjNlXCIsXCJJcm5EdFwiOlwiMjAyMC0xMC0xNCAxMTozNDowMFwifSIsImlzcyI6Ik5JQyJ9.kFLRH57ph67lsNqpxS6PNRdVkhX96MVv1Ela0CRxD8IhI0jZvQad8e5m_dNe6XueSit7Lkcu5DCCqItlNEUliDQ2gdJxK4gHKyuE9cZicZKgSKq-fEiwzGORof9oiKMKvnQOpWFNGvKS6CdbKa6cBPYy9FfX_KJtatkvv0NI2RyOBqLB_TJPM-j2iFIoxlIuXxLSBRlI-clM0Gb7eDR18Ekp9hrVpGCk5YQ-967CZEFQoR0m-ybCFxT5--vJxIyEBXtvd22bcK21Fis9bUDuQQKP7NVUrCUHCKMDm18iLViikMsTTIik2KxIabj0BrV7I4Wo9f1U9BkSe-7c2bB3xg",
"Status": "ACT",
"info": [
{
"InfCd": "DUPIRN_CLEARTAX",
"Desc": "Duplicate IRN; The IRN is already generated & available for this document with ClearTax. We have shared the details in the response payload"
}
]
}
Once we get success response, we add IRN and SignedQRCode in Invoice.
Note - if we get any error response from clear tax, return the error to front-end.
Open Point:
decoding the signedQRCode received from clear tax as per our requirement.