Chilkat Online Tools

Swift3 / Egyptian eInvoicing SDK R1.5 / 1.2 Submit Documents (XML)

Back to Collection Items

func chilkatTest() {
    // This example assumes the Chilkat API to have been previously unlocked.
    // See Global Unlock Sample for sample code.

    let http = CkoHttp()!
    var success: Bool

    // Use this online tool to generate code from sample XML: Generate Code to Create XML

    // The following XML is sent in the request body.

    // <?xml version="1.0" encoding="utf-8"?>
    // <submission>
    //     <documents>
    //         <document>
    //             <issuer>
    //                 <type>B</type>
    //                 <id>674859545</id>
    //                 <name>الشركة المصدرة</name>
    //                 <address>
    //                     <buildingNumber>عمارة 40</buildingNumber>
    //                     <room>123</room>
    //                     <floor>16</floor>
    //                     <street>15 احمد فخرى</street>
    //                     <landmark>مستشفى حسبو</landmark>
    //                     <additionalInformation>بجانب مستشفى حسبو</additionalInformation>
    //                     <governate>القاهرة</governate>
    //                     <regionCity>مدينة نصر</regionCity>
    //                     <postalCode>098607</postalCode>
    //                     <country>EG</country>
    //                     <branchID>0</branchID>
    //                 </address>
    //             </issuer>
    //             <receiver>
    //                 <type>B</type>
    //                 <id>200000640</id>
    //                 <name>receiver</name>
    //                 <address>
    //                     <buildingNumber>عمارة 15</buildingNumber>
    //                     <room>110</room>
    //                     <floor>8</floor>
    //                     <street>16 حوش عيسى</street>
    //                     <landmark>جامع الرحمة</landmark>
    //                     <additionalInformation>بجانب جامع الرحمة</additionalInformation>
    //                     <governate>البحيرة</governate>
    //                     <regionCity>دمنهور</regionCity>
    //                     <postalCode>098661</postalCode>
    //                     <country>EG</country>
    //                 </address>
    //             </receiver>
    //             <documentType>I</documentType>
    //             <documentTypeVersion>0.9</documentTypeVersion>
    //             <dateTimeIssued>2021-02-01T00:30:22</dateTimeIssued>
    //             <taxpayerActivityCode>4620</taxpayerActivityCode>
    //             <internalID>ID1</internalID>
    //             <purchaseOrderReference>1230</purchaseOrderReference>
    //             <purchaseOrderDescription>وصف طلب الدفع</purchaseOrderDescription>
    //             <salesOrderReference>1452</salesOrderReference>
    //             <salesOrderDescription>وصف بيع الطلب</salesOrderDescription>
    //             <proformaInvoiceNumber>1485</proformaInvoiceNumber>
    //             <payment>
    //                 <bankName>البنك الاهلى</bankName>
    //                 <bankAddress>15 شارع النصر</bankAddress>
    //                 <bankAccountNo>1234567</bankAccountNo>
    //                 <bankAccountIBAN/>
    //                 <swiftCode/>
    //                 <terms>لا يمكن التزوير</terms>
    //             </payment>
    //             <delivery>
    //                 <approach>جوى</approach>
    //                 <packaging>تغليف</packaging>
    //                 <dateValidity>2020-06-29T17:30:22Z</dateValidity>
    //                 <exportPort>ميناء اسكندرية</exportPort>
    //                 <countryOfOrigin>LS</countryOfOrigin>
    //                 <grossWeight>123.45</grossWeight>
    //                 <netWeight>122.87</netWeight>
    //                 <terms>لا يمكن الفتح</terms>
    //             </delivery>
    //             <invoiceLines>
    //                 <invoiceLine>
    //                     <description>حاسب الى</description>
    //                     <itemType>GS1</itemType>
    //                     <itemCode>10003752</itemCode>
    //                     <unitType>EA</unitType>
    //                     <quantity>100.12134</quantity>
    //                     <unitValue>
    //                         <currencySold>EGP</currencySold>
    //                         <amountEGP>100</amountEGP>
    //                     </unitValue>
    //                     <salesTotal>10012.134</salesTotal>
    //                     <discount>
    //                         <rate>0</rate>
    //                         <amount>0</amount>
    //                     </discount>
    //                     <taxableItems>
    //                         <taxableItem>
    //                             <taxType>T1</taxType>
    //                             <amount>0.0</amount>
    //                             <subType>V001</subType>
    //                             <rate>0.00</rate>
    //                         </taxableItem>
    //                     </taxableItems>
    //                     <internalCode>IC0</internalCode>
    //                     <itemsDiscount>0</itemsDiscount>
    //                     <netTotal>10012.134</netTotal>
    //                     <totalTaxableFees>0.00</totalTaxableFees>
    //                     <valueDifference>0</valueDifference>
    //                     <total>10012.134</total>
    //                 </invoiceLine>
    //             </invoiceLines>
    //             <totalSalesAmount>10012.134</totalSalesAmount>
    //             <totalDiscountAmount>0.0</totalDiscountAmount>
    //             <netAmount>10012.134</netAmount>
    //             <taxTotals>
    //                 <taxTotal>
    //                     <taxType>T1</taxType>
    //                     <amount>0.00</amount>
    //                 </taxTotal>
    //             </taxTotals>
    //             <totalAmount>10012.134</totalAmount>
    //             <totalItemsDiscountAmount>0.00</totalItemsDiscountAmount>
    //             <extraDiscountAmount>0.00</extraDiscountAmount>
    //             <signatures>
    //                 <signature>
    //                     <signatureType>I</signatureType>
    //                     <value/>
    //                 </signature>
    //             </signatures>
    //         </document>
    //     </documents>
    // </submission>
    // 

    let xml = CkoXml()!
    xml.tag = "submission"
    xml.updateChildContent("documents|document|issuer|type", value: "B")
    xml.updateChildContentInt("documents|document|issuer|id", value: 674859545)
    xml.updateChildContent("documents|document|issuer|name", value: "الشركة المصدرة")
    xml.updateChildContent("documents|document|issuer|address|buildingNumber", value: "عمارة 40")
    xml.updateChildContentInt("documents|document|issuer|address|room", value: 123)
    xml.updateChildContentInt("documents|document|issuer|address|floor", value: 16)
    xml.updateChildContent("documents|document|issuer|address|street", value: "15 احمد فخرى")
    xml.updateChildContent("documents|document|issuer|address|landmark", value: "مستشفى حسبو")
    xml.updateChildContent("documents|document|issuer|address|additionalInformation", value: "بجانب مستشفى حسبو")
    xml.updateChildContent("documents|document|issuer|address|governate", value: "القاهرة")
    xml.updateChildContent("documents|document|issuer|address|regionCity", value: "مدينة نصر")
    xml.updateChildContentInt("documents|document|issuer|address|postalCode", value: 098607)
    xml.updateChildContent("documents|document|issuer|address|country", value: "EG")
    xml.updateChildContentInt("documents|document|issuer|address|branchID", value: 0)
    xml.updateChildContent("documents|document|receiver|type", value: "B")
    xml.updateChildContentInt("documents|document|receiver|id", value: 200000640)
    xml.updateChildContent("documents|document|receiver|name", value: "receiver")
    xml.updateChildContent("documents|document|receiver|address|buildingNumber", value: "عمارة 15")
    xml.updateChildContentInt("documents|document|receiver|address|room", value: 110)
    xml.updateChildContentInt("documents|document|receiver|address|floor", value: 8)
    xml.updateChildContent("documents|document|receiver|address|street", value: "16 حوش عيسى")
    xml.updateChildContent("documents|document|receiver|address|landmark", value: "جامع الرحمة")
    xml.updateChildContent("documents|document|receiver|address|additionalInformation", value: "بجانب جامع الرحمة")
    xml.updateChildContent("documents|document|receiver|address|governate", value: "البحيرة")
    xml.updateChildContent("documents|document|receiver|address|regionCity", value: "دمنهور")
    xml.updateChildContentInt("documents|document|receiver|address|postalCode", value: 098661)
    xml.updateChildContent("documents|document|receiver|address|country", value: "EG")
    xml.updateChildContent("documents|document|documentType", value: "I")
    xml.updateChildContent("documents|document|documentTypeVersion", value: "0.9")
    xml.updateChildContent("documents|document|dateTimeIssued", value: "2021-02-01T00:30:22")
    xml.updateChildContentInt("documents|document|taxpayerActivityCode", value: 4620)
    xml.updateChildContent("documents|document|internalID", value: "ID1")
    xml.updateChildContentInt("documents|document|purchaseOrderReference", value: 1230)
    xml.updateChildContent("documents|document|purchaseOrderDescription", value: "وصف طلب الدفع")
    xml.updateChildContentInt("documents|document|salesOrderReference", value: 1452)
    xml.updateChildContent("documents|document|salesOrderDescription", value: "وصف بيع الطلب")
    xml.updateChildContentInt("documents|document|proformaInvoiceNumber", value: 1485)
    xml.updateChildContent("documents|document|payment|bankName", value: "البنك الاهلى")
    xml.updateChildContent("documents|document|payment|bankAddress", value: "15 شارع النصر")
    xml.updateChildContentInt("documents|document|payment|bankAccountNo", value: 1234567)
    xml.updateChildContent("documents|document|payment|bankAccountIBAN", value: "")
    xml.updateChildContent("documents|document|payment|swiftCode", value: "")
    xml.updateChildContent("documents|document|payment|terms", value: "لا يمكن التزوير")
    xml.updateChildContent("documents|document|delivery|approach", value: "جوى")
    xml.updateChildContent("documents|document|delivery|packaging", value: "تغليف")
    xml.updateChildContent("documents|document|delivery|dateValidity", value: "2020-06-29T17:30:22Z")
    xml.updateChildContent("documents|document|delivery|exportPort", value: "ميناء اسكندرية")
    xml.updateChildContent("documents|document|delivery|countryOfOrigin", value: "LS")
    xml.updateChildContent("documents|document|delivery|grossWeight", value: "123.45")
    xml.updateChildContent("documents|document|delivery|netWeight", value: "122.87")
    xml.updateChildContent("documents|document|delivery|terms", value: "لا يمكن الفتح")
    xml.updateChildContent("documents|document|invoiceLines|invoiceLine|description", value: "حاسب الى")
    xml.updateChildContent("documents|document|invoiceLines|invoiceLine|itemType", value: "GS1")
    xml.updateChildContentInt("documents|document|invoiceLines|invoiceLine|itemCode", value: 10003752)
    xml.updateChildContent("documents|document|invoiceLines|invoiceLine|unitType", value: "EA")
    xml.updateChildContent("documents|document|invoiceLines|invoiceLine|quantity", value: "100.12134")
    xml.updateChildContent("documents|document|invoiceLines|invoiceLine|unitValue|currencySold", value: "EGP")
    xml.updateChildContentInt("documents|document|invoiceLines|invoiceLine|unitValue|amountEGP", value: 100)
    xml.updateChildContent("documents|document|invoiceLines|invoiceLine|salesTotal", value: "10012.134")
    xml.updateChildContentInt("documents|document|invoiceLines|invoiceLine|discount|rate", value: 0)
    xml.updateChildContentInt("documents|document|invoiceLines|invoiceLine|discount|amount", value: 0)
    xml.updateChildContent("documents|document|invoiceLines|invoiceLine|taxableItems|taxableItem|taxType", value: "T1")
    xml.updateChildContent("documents|document|invoiceLines|invoiceLine|taxableItems|taxableItem|amount", value: "0.0")
    xml.updateChildContent("documents|document|invoiceLines|invoiceLine|taxableItems|taxableItem|subType", value: "V001")
    xml.updateChildContent("documents|document|invoiceLines|invoiceLine|taxableItems|taxableItem|rate", value: "0.00")
    xml.updateChildContent("documents|document|invoiceLines|invoiceLine|internalCode", value: "IC0")
    xml.updateChildContentInt("documents|document|invoiceLines|invoiceLine|itemsDiscount", value: 0)
    xml.updateChildContent("documents|document|invoiceLines|invoiceLine|netTotal", value: "10012.134")
    xml.updateChildContent("documents|document|invoiceLines|invoiceLine|totalTaxableFees", value: "0.00")
    xml.updateChildContentInt("documents|document|invoiceLines|invoiceLine|valueDifference", value: 0)
    xml.updateChildContent("documents|document|invoiceLines|invoiceLine|total", value: "10012.134")
    xml.updateChildContent("documents|document|totalSalesAmount", value: "10012.134")
    xml.updateChildContent("documents|document|totalDiscountAmount", value: "0.0")
    xml.updateChildContent("documents|document|netAmount", value: "10012.134")
    xml.updateChildContent("documents|document|taxTotals|taxTotal|taxType", value: "T1")
    xml.updateChildContent("documents|document|taxTotals|taxTotal|amount", value: "0.00")
    xml.updateChildContent("documents|document|totalAmount", value: "10012.134")
    xml.updateChildContent("documents|document|totalItemsDiscountAmount", value: "0.00")
    xml.updateChildContent("documents|document|extraDiscountAmount", value: "0.00")
    xml.updateChildContent("documents|document|signatures|signature|signatureType", value: "I")
    xml.updateChildContent("documents|document|signatures|signature|value", value: "")

    // Adds the "Authorization: Bearer <access_token>" header.
    http.authToken = "<access_token>"
    http.setRequestHeader("Content-Type", value: "application/xml")

    let sbRequestBody = CkoStringBuilder()!
    xml.getSb(sbRequestBody)

    var resp: CkoHttpResponse? = http.pTextSb("POST", url: "https://domain.com/api/v1/documentsubmissions", textData: sbRequestBody, charset: "utf-8", contentType: "application/xml", md5: false, gzip: false)
    if http.lastMethodSuccess == false {
        print("\(http.lastErrorText!)")
        return
    }

    print("\(resp!.statusCode.intValue)")
    print("\(resp!.bodyStr!)")
    resp = nil

}

Curl Command

curl -X POST
	-H "Authorization: Bearer <access_token>"
	-H "Content-Type: application/xml"
	-d '<submission>
    <documents>
        <document>
            <issuer>
                <type>B</type>
                <id>674859545</id>
                <name>الشركة المصدرة</name>
                <address>
                    <buildingNumber>عمارة 40</buildingNumber>
                    <room>123</room>
                    <floor>16</floor>
                    <street>15 احمد فخرى</street>
                    <landmark>مستشفى حسبو</landmark>
                    <additionalInformation>بجانب مستشفى حسبو</additionalInformation>
                    <governate>القاهرة</governate>
                    <regionCity>مدينة نصر</regionCity>
                    <postalCode>098607</postalCode>
                    <country>EG</country>
                    <branchID>0</branchID>
                </address>
            </issuer>
            <receiver>
                <type>B</type>
                <id>200000640</id>
                <name>receiver</name>
                <address>
                    <buildingNumber>عمارة 15</buildingNumber>
                    <room>110</room>
                    <floor>8</floor>
                    <street>16 حوش عيسى</street>
                    <landmark>جامع الرحمة</landmark>
                    <additionalInformation>بجانب جامع الرحمة</additionalInformation>
                    <governate>البحيرة</governate>
                    <regionCity>دمنهور</regionCity>
                    <postalCode>098661</postalCode>
                    <country>EG</country>
                </address>
            </receiver>
            <documentType>I</documentType>
            <documentTypeVersion>0.9</documentTypeVersion>
            <dateTimeIssued>2021-02-01T00:30:22</dateTimeIssued>
            <taxpayerActivityCode>4620</taxpayerActivityCode>
            <internalID>ID1</internalID>
            <purchaseOrderReference>1230</purchaseOrderReference>
            <purchaseOrderDescription>وصف طلب الدفع</purchaseOrderDescription>
            <salesOrderReference>1452</salesOrderReference>
            <salesOrderDescription>وصف بيع الطلب</salesOrderDescription>
            <proformaInvoiceNumber>1485</proformaInvoiceNumber>
          
            <payment>
                <bankName>البنك الاهلى</bankName>
                <bankAddress>15 شارع النصر</bankAddress>
                <bankAccountNo>1234567</bankAccountNo>
                <bankAccountIBAN></bankAccountIBAN>
                <swiftCode></swiftCode>
                <terms>لا يمكن التزوير</terms>
            </payment>
            <delivery>
                <approach>جوى</approach>
                <packaging>تغليف</packaging>
                <dateValidity>2020-06-29T17:30:22Z</dateValidity>
                <exportPort>ميناء اسكندرية</exportPort>
                <countryOfOrigin>LS</countryOfOrigin>
                <grossWeight>123.45</grossWeight>
                <netWeight>122.87</netWeight>
                <terms>لا يمكن الفتح</terms>
            </delivery>
            <invoiceLines>
                <invoiceLine>
                    <description>حاسب الى</description>
                    <itemType>GS1</itemType>
                    <itemCode>10003752</itemCode>
                    <unitType>EA</unitType>
                    <quantity>100.12134</quantity>
                    <unitValue>
                        <currencySold>EGP</currencySold>
                        <amountEGP>100</amountEGP>
                    </unitValue>
                 
                    <salesTotal>10012.134</salesTotal>
                    <discount>
                        <rate>0</rate>
                        <amount>0</amount>
                    </discount>
                    <taxableItems>
                        <taxableItem>
                            <taxType>T1</taxType>
                            <amount>0.0</amount>
                            <subType>V001</subType>
                            <rate>0.00</rate>
                        </taxableItem>
                       
                    </taxableItems>
                    <internalCode>IC0</internalCode>
                    <itemsDiscount>0</itemsDiscount>
                    <netTotal>10012.134</netTotal>
                    <totalTaxableFees>0.00</totalTaxableFees>
                    <valueDifference>0</valueDifference>
                    <total>10012.134</total>
                </invoiceLine>
            </invoiceLines>
            <totalSalesAmount>10012.134</totalSalesAmount>
            <totalDiscountAmount>0.0</totalDiscountAmount>
            <netAmount>10012.134</netAmount>
            <taxTotals>
                <taxTotal>
                    <taxType>T1</taxType>
                    <amount>0.00</amount>
                </taxTotal>
            </taxTotals>
            <totalAmount>10012.134</totalAmount>
            <totalItemsDiscountAmount>0.00</totalItemsDiscountAmount>
            <extraDiscountAmount>0.00</extraDiscountAmount>
            <signatures>
                     <signature>
                    <signatureType>I</signatureType>
                    <value></value>
                </signature>
            </signatures>
          
        </document>
    </documents>
</submission>'
https://domain.com/api/v1/documentsubmissions

Postman Collection Item JSON

{
  "name": "1.2 Submit Documents (XML)",
  "request": {
    "auth": {
      "type": "bearer",
      "bearer": [
        {
          "key": "token",
          "value": "{{generatedAccessToken}}",
          "type": "string"
        }
      ]
    },
    "method": "POST",
    "header": [
      {
        "key": "Content-Type",
        "value": "application/xml"
      }
    ],
    "body": {
      "mode": "raw",
      "raw": "<submission>\r\n    <documents>\r\n        <document>\r\n            <issuer>\r\n                <type>B</type>\r\n                <id>674859545</id>\r\n                <name>الشركة المصدرة</name>\r\n                <address>\r\n                    <buildingNumber>عمارة 40</buildingNumber>\r\n                    <room>123</room>\r\n                    <floor>16</floor>\r\n                    <street>15 احمد فخرى</street>\r\n                    <landmark>مستشفى حسبو</landmark>\r\n                    <additionalInformation>بجانب مستشفى حسبو</additionalInformation>\r\n                    <governate>القاهرة</governate>\r\n                    <regionCity>مدينة نصر</regionCity>\r\n                    <postalCode>098607</postalCode>\r\n                    <country>EG</country>\r\n                    <branchID>0</branchID>\r\n                </address>\r\n            </issuer>\r\n            <receiver>\r\n                <type>B</type>\r\n                <id>200000640</id>\r\n                <name>receiver</name>\r\n                <address>\r\n                    <buildingNumber>عمارة 15</buildingNumber>\r\n                    <room>110</room>\r\n                    <floor>8</floor>\r\n                    <street>16 حوش عيسى</street>\r\n                    <landmark>جامع الرحمة</landmark>\r\n                    <additionalInformation>بجانب جامع الرحمة</additionalInformation>\r\n                    <governate>البحيرة</governate>\r\n                    <regionCity>دمنهور</regionCity>\r\n                    <postalCode>098661</postalCode>\r\n                    <country>EG</country>\r\n                </address>\r\n            </receiver>\r\n            <documentType>I</documentType>\r\n            <documentTypeVersion>0.9</documentTypeVersion>\r\n            <dateTimeIssued>2021-02-01T00:30:22</dateTimeIssued>\r\n            <taxpayerActivityCode>4620</taxpayerActivityCode>\r\n            <internalID>ID1</internalID>\r\n            <purchaseOrderReference>1230</purchaseOrderReference>\r\n            <purchaseOrderDescription>وصف طلب الدفع</purchaseOrderDescription>\r\n            <salesOrderReference>1452</salesOrderReference>\r\n            <salesOrderDescription>وصف بيع الطلب</salesOrderDescription>\r\n            <proformaInvoiceNumber>1485</proformaInvoiceNumber>\r\n          \r\n            <payment>\r\n                <bankName>البنك الاهلى</bankName>\r\n                <bankAddress>15 شارع النصر</bankAddress>\r\n                <bankAccountNo>1234567</bankAccountNo>\r\n                <bankAccountIBAN></bankAccountIBAN>\r\n                <swiftCode></swiftCode>\r\n                <terms>لا يمكن التزوير</terms>\r\n            </payment>\r\n            <delivery>\r\n                <approach>جوى</approach>\r\n                <packaging>تغليف</packaging>\r\n                <dateValidity>2020-06-29T17:30:22Z</dateValidity>\r\n                <exportPort>ميناء اسكندرية</exportPort>\r\n                <countryOfOrigin>LS</countryOfOrigin>\r\n                <grossWeight>123.45</grossWeight>\r\n                <netWeight>122.87</netWeight>\r\n                <terms>لا يمكن الفتح</terms>\r\n            </delivery>\r\n            <invoiceLines>\r\n                <invoiceLine>\r\n                    <description>حاسب الى</description>\r\n                    <itemType>GS1</itemType>\r\n                    <itemCode>10003752</itemCode>\r\n                    <unitType>EA</unitType>\r\n                    <quantity>100.12134</quantity>\r\n                    <unitValue>\r\n                        <currencySold>EGP</currencySold>\r\n                        <amountEGP>100</amountEGP>\r\n                    </unitValue>\r\n                 \r\n                    <salesTotal>10012.134</salesTotal>\r\n                    <discount>\r\n                        <rate>0</rate>\r\n                        <amount>0</amount>\r\n                    </discount>\r\n                    <taxableItems>\r\n                        <taxableItem>\r\n                            <taxType>T1</taxType>\r\n                            <amount>0.0</amount>\r\n                            <subType>V001</subType>\r\n                            <rate>0.00</rate>\r\n                        </taxableItem>\r\n                       \r\n                    </taxableItems>\r\n                    <internalCode>IC0</internalCode>\r\n                    <itemsDiscount>0</itemsDiscount>\r\n                    <netTotal>10012.134</netTotal>\r\n                    <totalTaxableFees>0.00</totalTaxableFees>\r\n                    <valueDifference>0</valueDifference>\r\n                    <total>10012.134</total>\r\n                </invoiceLine>\r\n            </invoiceLines>\r\n            <totalSalesAmount>10012.134</totalSalesAmount>\r\n            <totalDiscountAmount>0.0</totalDiscountAmount>\r\n            <netAmount>10012.134</netAmount>\r\n            <taxTotals>\r\n                <taxTotal>\r\n                    <taxType>T1</taxType>\r\n                    <amount>0.00</amount>\r\n                </taxTotal>\r\n            </taxTotals>\r\n            <totalAmount>10012.134</totalAmount>\r\n            <totalItemsDiscountAmount>0.00</totalItemsDiscountAmount>\r\n            <extraDiscountAmount>0.00</extraDiscountAmount>\r\n            <signatures>\r\n                     <signature>\r\n                    <signatureType>I</signatureType>\r\n                    <value></value>\r\n                </signature>\r\n            </signatures>\r\n          \r\n        </document>\r\n    </documents>\r\n</submission>\r\n"
    },
    "url": {
      "raw": "{{apiBaseUrl}}/api/v1/documentsubmissions",
      "host": [
        "{{apiBaseUrl}}"
      ],
      "path": [
        "api",
        "v1",
        "documentsubmissions"
      ]
    },
    "description": "Remember that you can include multiple documents within the same submission."
  },
  "response": [
  ]
}