การส่งข้อมูล และการลงลายมือชื่ออิเล็กทรอนิกส์

การเชื่อมต่อ การส่งข้อมูล

โปรโตคอล (Protocal) สำหรับการรับส่งข้อมูล

การรับส่งข้อมูล ต้องเรียกใช้ด้วยโปรโตคอล HTTPS เพื่อให้การรับส่งข้อมูล มีความปลอดภัยและ น่าเชื่อถือ

การลงลายมือชื่ออิเล็กทรอนิกส์


  • ใบรับรองอิเล็กทรอนิกส์ (Electronic Certificate) ใบรับรองอิเล็กทรอนิกส์ที่ใช้ต้องออกโดยผู้ให้บริการออก ใบรับรองอิเล็กทรอนิกส์ ที่อยู่ภายใต้การรับรองของผู้ให้บริการออกใบรับรองอิเล็กทรอนิกส์แห่งชาติ (NRCA) และสำนักงานพัฒนาธุรกรรมทางอิเล็กทรอนิกส์ (องค์การมหาชน)
  • รูปแบบการนำส่ง และการลงลายมือชื่ออิเล็กทรอนิกส์ การเรียกใช้ Web Service เพื่อนำส่งข้อมูลสำหรับการยื่นแบบอากรแสตมป์ การสอบถามการนำส่งข้อมูล การสอบถามผลการชำระอากร และการขอภาพแบบฯ ใบเสร็จรับเงินระหว่างผู้นำส่งกับกรมสรรพากร จะต้องมีการลงลายมือชื่อเพื่อความปลอดภัยในการรับส่งข้อมูล

ข้อมูลแบบฯ อ.ส.9 ที่ผู้นำส่ง ส่งให้กรมสรรพากร จะต้องอยู่ในรูปแบบมาตรฐาน JWS (JSON Web Signature) ซึ่ง JWS จะประกอบด้วยข้อมูล 3 ส่วน คือ JWS Header, JWS Payload และ JWS Signature ซึ่งทั้ง 3 ส่วน จะต้องถูกเข้ารหัสแบบ base64url encoded และต่อกันด้วย “.”

Example


    base64url(UTF8(JWS Header) ) || '.' || base64url( JWS Payload ) || '.' || 
    base64url( JWS Signature )   
                                                         

JWS Header

ส่วนของ Header จะเป็นข้อมูลซึ่งจะบอกว่าเป็น type และใช้ algorithm อะไร


    {
        "alg": "HS256",
        "typ": "JWT"
    }
                                                         

ตัวอย่าง ข้อมูลเมื่อนำไปเข้ารหัสแบบ base64url encoder

ส่วนของ Header จะเป็นข้อมูลซึ่งจะบอกว่าเป็น type และใช้ algorithm อะไร

 
    eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9
                                                         

JWS Payload

ส่วนของ JWS Payload จะเป็นส่วนของข้อมูลแบบฯ อ.ส.9 ที่จะส่งให้กรมสรรพากร


    {
        "documentDetail": {
            "requestId": "rdtest201908200041001",
            "formType": "OS9",
            "typeCode": "7",
            "version": "01.00.0000",
            "transAmount": 1
        },
        "instInfo": [
            {
                "id": "rdtest201908200041001",
                "contractNo": "",
                "creationDate": "2019-08-20",
                "effectiveDate": "2019-08-20",
                "expireDate": null,
                "sendFormType": "1",
                "relateInstInfo": null,
                "instAmount": null,
                "taxPayer": {
                    "specifiedTaxRegistration": {
                        "id": "1111111111119"
                    },
                    "branchNo": "0",
                    "branchType": "O",
                    "relationship": "2"
                },
                "party": {
                    "specifiedTaxRegistration": {
                        "id": "1212121212121"
                    },
                    "titleName": "นาย",
                    "name": "",
                    "surname": "",
                    "branchNo": "0",
                    "branchType": "O",
                    "postalTradeAddress": {
                        "buildingName": "",
                        "roomNo": "",
                        "floorNo": "",
                        "villageName": "",
                        "buildingNumber": "",
                        "moo": "",
                        "soiName": "",
                        "junctionName": "",
                        "streetName": "ถนนเพชรเกษม",
                        "citySubDivisionName": "หาดใหญ่",
                        "cityName": "หาดใหญ่",
                        "countrySubDivisionName": "สงขลา",
                        "postCode": "90110",
                        "countryId": "TH"
                    },
                    "totalParty": 1
                },
                "attachDetail": {
                    "detail1": "สัญญาแต่งตั้งตัวแทนนายหน้า",
                    "detail2": null,
                    "detail3": null,
                    "detail4": null,
                    "date": null,
                    "amount": null,
                    "number": null,
                    "actionType": "2"
                },
                "payment": {
                    "dutyAmount": 30,
                    "surchargeAmount": 0,
                    "fineAmount": 0,
                    "totalAmount": 30
                }
            }
        ],
        "summary": {
            "totalDuty": 30,
            "totalSurcharge": 0,
            "totalFine": 0,
            "totalPayment": 30,
            "payer": {
                "specifiedTaxRegistration": {
                    "id": "1111111111119"
                }
            },
            "responsePaymentType": "2"
        }
    }
                                                       

ตัวอย่าง ข้อมูลเมื่อนำไปเข้ารหัสแบบ base64url encoder

ส่วนของ Header จะเป็นข้อมูลซึ่งจะบอกว่าเป็น type และใช้ algorithm อะไร


    eyJkb2N1bWVudERldGFpbCI6eyJyZXF1ZXN0SWQiOiJ
    yZHRlc3QyMDE5MDgyMDAwNDEwMDEiLCJmb3JtVHlwZ
    SI6IiOiIwMS4wMC4wMDAwIiwidHJhbnNBbW91b4iLCJ
    zdXJuYW1lIjoiPHN1cm5hbWU--C4leC4seC5ieC4h-
    C4leC4seC4p-C5geC4l-C4meC4meC4suC4ouC4q …………….. 
    C4meCsImRldGFpbDQiOm51bGwsImRhdGlciI6eyJz
    cGVjaWZpZWRUYXhSZWdpc3RyYXRpb24iOnsiaWQiOiI
    xMTExMTExMTExMTE5In19LCJyZXNwb25zZVBheW1lbnR
    UeXBlIjoiMiJ9fQ
                                                       

JWS Signature

ส่วนของ JWS Signature คือ การลงลายมือชื่ออิเล็กทรอนิกส์ซึ่งจะเป็นการนำข้อมูลส่วนของ JWS Payload ที่ผ่านการเข้ารหัสแบบ base64url encoded มาทำการ sign ด้วย algorithm ตามที่ระบุไว้ใน header

 
    HMACSHA256(base64UrlEncode(header) + "." + base64UrlEncode(payload), 
    your-256-bit-secret)
                                                     

ตัวอย่าง ข้อมูลเมื่อนำไปเข้ารหัสแบบ base64url encoder


    SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c