API 開發文件

電子發票 API 整合指南

版本: 1.0.0 | 環境: testing 測試環境

🔐 認證方式

所有 API 請求都需要在 HTTP Header 中加入 API Key:

X-API-Key: YOUR_API_KEY

您可以在管理後台取得您的 API Key。每個客戶帳號都有獨立的 API Key。

速率限制

為確保服務品質,API 有以下限制:

📡 API 端點

Base URL: https://invoice.aaservice.cc/api/invoice.php

1. 開立 B2C 發票 (二聯式)

POST /api/invoice.php?action=issue_b2c

請求參數:

參數類型必填說明
buyer_namestring買受人名稱
buyer_emailstring買受人 Email
itemsarray商品明細陣列
carrier_typestring載具類型 (3J0002=手機條碼, CQ0001=自然人憑證)
carrier_idstring載具號碼
donateboolean是否捐贈
donate_codestring捐贈碼
{
  "buyer_name": "王小明",
  "buyer_email": "wang@example.com",
  "items": [
    {
      "description": "商品名稱",
      "quantity": 1,
      "unit_price": 1000,
      "unit": "個"
    }
  ],
  "carrier_type": "3J0002",
  "carrier_id": "/ABC1234"
}

2. 開立 B2B 發票 (三聯式)

POST /api/invoice.php?action=issue_b2b

額外必填參數:

參數類型必填說明
buyer_tax_idstring買受人統一編號 (8碼)
buyer_namestring買受人公司名稱
buyer_addressstring買受人地址

3. 作廢發票

POST /api/invoice.php?action=void
{
  "invoice_number": "AA00000001",
  "reason": "客戶退貨"
}

4. 查詢發票

GET /api/invoice.php?action=query&start_date=2025-01-01&end_date=2025-01-31

查詢參數:

參數類型必填說明
start_datestring起始日期 (YYYY-MM-DD)
end_datestring結束日期 (YYYY-MM-DD)
statusstring發票狀態 (issued/voided/uploaded)

5. 取得單一發票

GET /api/invoice.php?action=get&invoice_number=AA00000001

6. 上傳至財政部

POST /api/invoice.php?action=upload

將待上傳的發票資料上傳至財政部 Turnkey 系統。

📋 回應格式

所有 API 回應都是 JSON 格式:

成功回應

{
  "success": true,
  "message": "發票開立成功",
  "data": {
    "invoice_number": "AA00000001",
    "invoice_date": "2025-01-15",
    "total_amount": 1050,
    "tax_amount": 50
  }
}

錯誤回應

{
  "success": false,
  "error": "缺少必要欄位"
}

💻 PHP 範例程式碼

<?php
// 設定 API Key
$apiKey = 'YOUR_API_KEY';
$baseUrl = 'https://invoice.aaservice.cc/api/invoice.php';

// 準備發票資料
$data = [
    'buyer_name' => '王小明',
    'buyer_email' => 'wang@example.com',
    'items' => [
        [
            'description' => '高級行李箱',
            'quantity' => 1,
            'unit_price' => 5000
        ]
    ],
    'carrier_type' => '3J0002',
    'carrier_id' => '/ABC1234'
];

// 呼叫 API
$ch = curl_init();
curl_setopt_array($ch, [
    CURLOPT_URL => $baseUrl . '?action=issue_b2c',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST => true,
    CURLOPT_POSTFIELDS => json_encode($data),
    CURLOPT_HTTPHEADER => [
        'Content-Type: application/json',
        'X-API-Key: ' . $apiKey
    ],
]);

$response = curl_exec($ch);
curl_close($ch);

$result = json_decode($response, true);

if ($result['success']) {
    echo "發票開立成功!\n";
    echo "發票號碼: " . $result['data']['invoice_number'] . "\n";
} else {
    echo "錯誤: " . $result['error'] . "\n";
}
?>

⚠️ HTTP 狀態碼

狀態碼說明
200成功
201建立成功
400請求格式錯誤或缺少必要參數
401身分驗證失敗 (API Key 無效)
403權限不足或 IP 被封鎖
404資源不存在
429請求過於頻繁
500伺服器錯誤

📊 系統狀態

資料庫連線 連線失敗
PHP 版本 8.1.33
系統時間 2026-01-16 13:19:49