電子發票 API (二) 功能和串接

申請完 API、通過審核取得 APP ID 和 API KEY 後就可以開始進行串接了,API 完整的說明與使用方法可以參考目前財政部最新的電子發票應用 API 規格文件 (1.7版)

存取方式
以 HTTPS 協定對財政部電子發票整合服務平台網址:https://api.einvoice.nat.gov.tw/[API Method] 送出要求,需求參數使用 POST 傳送,回傳結果以 JSON 格式來回應

主要的 API 方法列表

HTTP METHOD: POST
CONTENT-TYPE: application/x-www-form-urlencoded

#API方法網址
1查詢中獎發票號碼清單/PB2CAPIVAN/invapp/InvApp
2查詢發票表頭/PB2CAPIVAN/invapp/InvApp
3查詢發票明細/PB2CAPIVAN/invapp/InvApp
4捐贈碼查詢/PB2CAPIVAN/loveCodeapp/qryLoveCode
5載具發票表頭查詢/PB2CAPIVAN/invServ/InvServ
6載具發票明細查詢/PB2CAPIVAN/invServ/InvServ
7載具發票捐贈/PB2CAPIVAN/CarInv/Donate
8手機條碼歸戶載具查詢/PB2CAPIVAN/Carrier/Aggregate
9已歸戶載具個別化主題https://sip.einvoice.nat.gov.tw/ods-main/ODS371I/query

在做發票明細查詢前,先來試一下查詢中獎發票號碼清單的功能,這邊使用測試 API 的神器-Postman

查詢中獎發票號碼清單

功能說明
依開獎期別(雙數月)取得查詢期別,中獎獎別、號碼及中獎各獎獎金金額。

需求參數

參數名稱是否必填參數格式說明範例
version字串版本號碼
(帶入範例值即可)
0.2
action字串API 行為
(帶入範例值即可)
QryWinningList
invTerm日期字串
(yyyMM)
查詢開獎期別,年分為民國
年,月份必須為雙數月
10906
UUID字串行動工具 Unique ID
(後續文章補充)
appID字串透過財政資訊中心申請之軟體ID

開啟 Postman 後,HTTP Method 設定為 POST,Request URL 填上

https://api.einvoice.nat.gov.tw/PB2CAPIVAN/invapp/InvApp?version=0.2&action=QryWinningList&invTerm=10906&appID=填上你的APP_ID


詳細設定如下圖

Postman 設定

只要開獎期別和 APP ID 沒有不小心打錯基本上就成功了,會收到回傳的 JSON (如下)

{
    "msg": "執行成功",
    "updateDate": "1090725",
    "code": "200",
    "firstPrizeAmt": "0200000",
    "superPrizeNo": "03016191",
    "firstPrizeNo1": "33657726",
    "firstPrizeNo2": "06142620",
    "firstPrizeNo3": "66429962",
    "spcPrizeAmt": "2000000",
    "firstPrizeNo4": "",
    "fifthPrizeAmt": "0001000",
    "firstPrizeNo5": "",
    "fourthPrizeAmt": "0004000",
    "spcPrizeNo": "62474899",
    "firstPrizeNo6": "",
    "firstPrizeNo7": "",
    "firstPrizeNo8": "",
    "firstPrizeNo9": "",
    "secondPrizeAmt": "0040000",
    "invoYm": "10906",
    "sixthPrizeNo5": "",
    "sixthPrizeNo6": "",
    "thirdPrizeAmt": "0010000",
    "spcPrizeNo2": "",
    "spcPrizeNo3": "",
    "sixthPrizeNo1": "790",
    "sixthPrizeNo2": "",
    "sixthPrizeNo3": "",
    "sixthPrizeNo4": "",
    "timeStamp": {
        "date": 25,
        "hours": 13,
        "seconds": 26,
        "month": 6,
        "timezoneOffset": -480,
        "year": 120,
        "minutes": 5,
        "time": 1595653526000,
        "day": 6
    },
    "superPrizeAmt": "10000000",
    "sixthPrizeAmt": "0000200",
    "v": "0.2",
    "firstPrizeNo10": ""
}


今天就先到這,後續會再接著講查詢發票表頭和明細,感謝各位

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *