申請完 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
詳細設定如下圖
只要開獎期別和 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": ""
}
今天就先到這,後續會再接著講查詢發票表頭和明細,感謝各位