應用場景
特店系統可使用此API 來驗證統一編號,並回傳公司名稱
注意事項:
本API主要功能為查詢開放資料(Open Data)及財政部API進行統一編號的驗證。請注意,查無資料並不意味著該統一編號不存在。目前已確認存在查詢不到的情況,包括但不限於公司福委會、部分政府機構及醫療機構。因此,建議將此API作為一項輔助驗證工具,不要只因查無結果就判斷統一編號輸入有誤,以避免影響正常的發票開立流程。
API介接網址
- 測試環境:https://einvoice-stage.ecpay.com.tw/B2CInvoice/GetCompanyNameByTaxID
- 正式環境:https://einvoice.ecpay.com.tw/B2CInvoice/GetCompanyNameByTaxID
HTTPS傳輸協定
- Content Type :application/json
- HTTP Method :POST
特店傳入參數(Json格式)
PlatformID String(10)
特約合作平台商代號
- 這個參數是專為與綠界簽約的指定平台商所設計,只有在申請開通後才能使用。
- 如果您是一般廠商,請在介接時將此參數欄位保留為空。
- 對於平台商,在使用時需要在MerchantID(特店編號)欄位中填入與您已經完成綁定子廠商的MerchantID(特定編號)。
請注意,只能使用已綁定的子廠商編號,以避免操作失敗。綁定作業請洽所屬業務。
MerchantID String(10)
特店編號 必填
RqHeader
傳入資料 必填
Timestamp Number
傳入時間 必填
請將傳輸時間轉換為時間戳(GMT+8),綠界會利用此參數將當下的時間轉為Unix TimeStamp來驗證此次介接的時間區間。
注意事項:
- 驗證時間區間暫訂為 10 分鐘內有效,若超過此驗證時間則此次訂單將無法建立,參考資料:http://www.epochconverter.com/。
- 合作特店須進行主機「時間校正」,避免主機產生時差,導致API無法正常運作。
Data String
加密資料 必填
此為加密過JSON格式的資料。加密方法說明
特店傳入參數範例(Json格式)
{
"MerchantID": "2000132",
"RqHeader": {
"Timestamp": 1525168923
},
"Data": "加密資料"
}
Data參數說明(Json格式) : 請先將Json字串進行urlencode後再進行AES加密
MerchantID String(10)
特店編號 必填
UnifiedBusinessNo String(8)
統一編號 必填
僅限數字
Data參數範例(Json格式)
{
"MerchantID": "2000132",
"UnifiedBusinessNo": "97025978"
}
綠界回傳參數格式
- Content Type :application/json
- HTTP Method :POST
綠界回傳參數(Json格式)
PlatformID String(10)
特約合作平台商代號
MerchantID String(10)
特店編號
RpHeader
回傳資料
Timestamp Number
回傳時間
Unix timestamp(GMT+8)
TransCode Int
回傳代碼
1 代表 API 傳輸資料(MerchantID, RqHeader, Data)接收成功,實際的 API 執行結果狀態請參考 RtnCode。
TransMsg String(200)
回傳訊息
Data String
加密資料
回傳相關資料,此為加密過JSON格式的資料。加密方法說明
綠界回傳參數範例
{
"MerchantID": "2000132",
"RpHeader": {
"Timestamp": 1525169058
},
"TransCode": 1,
"TransMsg": "",
"Data": "加密資料"
}
1 代表 API 傳輸資料(MerchantID, RqHeader, Data)接收成功,實際的 API 執行結果狀態請參考 RtnCode。
Data參數說明(Json格式) : 請先將Data進行AES解密後再做urldecode
RtnCode Int
回應代碼
1 代表 API 執行成功,其餘代碼均為失敗。
注意事項:只有查詢到對應的公司名稱才視為成功
RtnMsg String(200)
回應訊息
- 檢核是否為空格或是非8碼數字, 如果不符合, 回復 [1200125]客戶統一編號格式不正確,請確認
- 查找Open Data資料是否有對應,如果有就回傳名稱,如果沒有,再呼叫財政部API進行查詢,如果還是沒找到對應的資料,回復 [7]查無資料
- 如果是網路問題,回復 [9000001]呼叫財政部API失敗
CompanyName String(60)
公司名稱
注意事項:
- 只有格式正確且公開資訊有查到資料,才會回覆公司名稱
- 目前主要的資料來源包括政府資料開放平台、商工政行政開放資料平台及財政部等正式資料為主,但仍有部分組織機構無法取得公開資料,不要只因查無資料就判斷統一編號輸入有誤,以避免影響正常的發票開立流程。
Data參數範例
{
"RtnCode": 1,
"RtnMsg": "查詢名稱成功",
"CompanyName": "綠界科技股份有限公司"
}
RtnCode Int
回應代碼
YAML
提供的 YAML 文件用於定義 API 的配置、結構、操作和基礎設施管理等資訊,方便開發人員理解和使用 API。
openapi: 3.1.0
info:
title: ECPay Unified Business Number Verification API
version: 1.0.0
servers:
- url: https://einvoice.ecpay.com.tw
description: Production Environment
- url: https://einvoice-stage.ecpay.com.tw
description: Testing Environment
paths:
/B2CInvoice/GetCompanyNameByTaxID:
post:
summary: Unified Business Number Verification
description: Verify the unified business number and return the company name.
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- MerchantID
- RqHeader
- Data
properties:
PlatformID:
type: string
description: Platform identifier (optional)
MerchantID:
type: string
description: Merchant identifier
RqHeader:
type: object
properties:
Timestamp:
type: number
description: Timestamp of the request
Data:
type: string
description: Encrypted data in JSON format
responses:
'200':
description: Success
content:
application/json:
schema:
type: object
properties:
PlatformID:
type: string
description: Platform identifier
MerchantID:
type: string
description: Merchant identifier
RpHeader:
type: object
properties:
Timestamp:
type: number
description: Timestamp of the response
TransCode:
type: integer
description: Transmission code
TransMsg:
type: string
description: Transmission message
Data:
type: string
description: Encrypted data in JSON format
'400':
description: Invalid request
'500':
description: Server error
components:
schemas:
requestBody.Data:
type: object
properties:
MerchantID:
type: string
description: Merchant identifier
UnifiedBusinessNo:
type: string
description: Unified business number
responses.Data:
type: object
properties:
RtnCode:
type: integer
description: Response code
RtnMsg:
type: string
description: Response message
CompanyName:
type: string
description: Company name