"""公開 API のサンプル (Python 3、requests): レコードを登録して PDF まで作り、ファイルを受け取る (ヘルプ「公開 API の使い方」a / c)。
使い方: PRING_API_KEY=prk_live_… python register_render_download.py
"""
import os

import requests

base = os.environ.get("PRING_API_BASE", "https://api.pring.tech")
app = os.environ.get("PRING_APP", "19")
tpl = os.environ.get("PRING_TEMPLATE", "tpl_invoice")
out = os.environ.get("PRING_OUT", "invoice.pdf")
headers = {"Authorization": f"Bearer {os.environ['PRING_API_KEY']}"}

res = requests.post(
    f"{base}/api/v1/apps/{app}/records",
    params={"render": tpl, "format": "pdf"},
    headers=headers,
    json={"record": {"顧客名": {"value": "サンプル商事"}, "請求日": {"value": "2026-10-31"}}},
    timeout=60,
)
res.raise_for_status()
body = res.json()

dl = requests.get(f"{base}/api/v1/files/{body['file']['id']}", headers=headers, timeout=60)  # 転送をたどる
dl.raise_for_status()
with open(out, "wb") as f:
    f.write(dl.content)
print("record", body["id"], "saved", out)
