Shippo APIを通じて、国内配送および国際配送のラベル購入、税関申告書の処理、返品ラベル、および無効化・返金ラベルを取り扱います。
Purchase domestic and international shipping labels, handle customs declarations, return labels, and void/refund labels via the Shippo API
ラベル購入は、認可されたShippoアカウントから実際に課金されます。購入前に、必ず「このShippoアカウントに課金されます」と、配送業者・サービス内容・金額を明示したうえで、ユーザーの確認を得てください。 確認なしに購入してはいけません。
CreateTransactionを呼び出す前に、毎回以下の内容をまとめてユーザーに確認を求めてください:
ユーザーの明確な確認なしに進めてはいけません。
ValidateAddressで検証する(アドレス検証を参照)。CreateShipmentを呼び出し、address_from、address_to(street1、city、state、zip、countryといったv1形式のフィールドを使ったインラインアドレスオブジェクト)、parcels、async: falseを指定する。CreateTransactionを呼び出し、rate(選択した料金のobject_id)、label_file_type(デフォルトPDF_4x6)、async: falseを指定する。statusを確認:
SUCCESS: tracking_number、label_url(S3署名付きURLは途中で切られると機能しないため、完全なURLを表示してください)、tracking_url_providerを返す。QUEUED/WAITING: GetTransactionを繰り返し呼び出して解決するまで待つ。ERROR: messages配列からメッセージを報告する。国内配送のすべてのステップに加えて、配送作成前に税関対応を行います。完全な税関ワークフローはshippo/references/customs-guide.mdを参照してください。
ValidateAddressで検証する。送信者はemailとphoneを含める必要があります。不足していたら尋ねてください。CreateCustomsItemを呼び出す(説明、数量、正味重量、重量単位、金額、通貨、原産国、関税番号)。別の方法として、このステップをスキップして、宣言内でインラインの品目オブジェクトを直接渡すことも可能です(ステップ3参照)。CreateCustomsDeclarationを呼び出し、contents_type、non_delivery_option、certify: true、certify_signer、および品目(ステップ2のobject_idまたはインライン品目オブジェクト)を指定する。フィールド詳細はshippo/references/customs-guide.mdを参照してください。CreateShipmentを呼び出し、すべての標準フィールドに加えてcustoms_declaration(宣言書のobject_id)を指定する。contents_typeの値を決定するには以下を使用してください:
| シナリオ | 値 |
|---|---|
| 受取人への販売(商業売上) | MERCHANDISE |
| 無料ギフトを送付 | GIFT |
| 製品サンプルを送付 | SAMPLE |
| 紙の書類のみ | DOCUMENTS |
| 購入品の返品 | RETURN_MERCHANDISE |
| 慈善寄付 | HUMANITARIAN_DONATION |
| 上記に該当しない | OTHER(contents_explanationが必須) |
税関宣言書のincotermフィールドは、誰が関税・税金を負担するかを制御します:
DDU(Delivered Duty Unpaid・関税未払い)を使用 -- 受取人が配達時に関税を支払う。DDP(Delivered Duty Paid・関税支払済み)を使用 -- 売り手がすべての関税と税金を負担する。FCA(Free Carrier・運送人のもとで引き渡し)が利用可能です。ユーザーが指定しない場合、標準的な電子商取引配送にはDDUをデフォルトとしてください。
返品用ラベルを生成するには、address_fromとaddress_toを入れ替え、元の受取人が送信者となり、元の送信者が受取人となるようにしてください。配送作成、料金選択、ラベル購入のその他すべてのステップは変わりません。
ユーザーが指定しない限り、デフォルトはPDF_4x6です。対応形式: PDF_4x6、PDF_4x8、PDF_A4、PDF_A5、PDF_A6、PDF、PDF_2.3x7.5、PNG、PNG_2.3x7.5、ZPLII。
CreateTransactionでラベルを購入する際、配送またはレートに以下のオプションを設定できます:
extraフィールドにsignature_confirmationを設定します。値: STANDARD、ADULT、CERTIFIED、INDIRECT、CARRIER_CONFIRMATION。extraフィールドにinsuranceを設定し、amount、currency、providerを指定します。extraフィールドでsaturday_deliveryをtrueに設定します。一部の配送業者とサービスレベルでのみ対応しています。metadataを渡し、注文番号や内部参照を記録します。ユーザーがすでに料金のobject_idを持っている場合: 必要に応じてGetRateを呼び出して詳細を確認し、購入を確認し(購入前の確認ゲートを参照)、CreateTransactionを直接呼び出してください。
CreateRefundをトランザクションのobject_idで呼び出してください。
返金の制限: キャンセル/返金の対象可否は配送業者とタイミングに依存します。購入後にすべてのラベルを返金できるわけではありません。CreateRefundが失敗した場合、ユーザーにShippoサポートに問い合わせるよう案内してください。
国内ラベル:
(任意)ValidateAddress(×2) -> CreateShipment(インラインアドレス使用) -> ユーザーが料金を選択 -> 確認 -> CreateTransaction
国際ラベル:
(任意)ValidateAddress(×2) -> CreateCustomsItem(品目ごと) -> CreateCustomsDeclaration -> CreateShipment(インラインアドレス + customs_declaration) -> ユーザーが料金を選択 -> 確認 -> CreateTransaction
返品ラベル:
国内/国際と同じですが、address_fromとaddress_toを入れ替えます。
注文からラベルへ:
CreateOrder -> CreateShipment(注文のアドレス/品目データ使用) -> ユーザーが料金を選択 -> 確認 -> CreateTransaction -> 梱包明細(REST フォールバック、下記参照)
注文を使用して、電子商取引の履行(注文処理)リクエストを表現します。注文には配送アドレス、品目、合計金額が含まれ、標準的なラベル購入ワークフローに入力されます。
CreateOrder: 品目、配送アドレス、注文詳細を含む注文を作成します。GetOrder: オブジェクトIDで注文を取得します。ListOrders: すべての注文をリストアップします。GET /orders/{ORDER_ID}/packingslip/(24時間有効なS3 PDFリンクを返す)に存在します。直接的なREST呼び出しにフォールバックするか、MCPギャップが解決されるまでShippoダッシュボードの使用をユーザーに勧めてください。CreateOrderを呼び出し、配送アドレス、品目(タイトル、数量、SKU、合計金額など)、注文レベルのフィールドを指定する。CreateShipmentを呼び出し、標準的なラベル購入フロー(料金選択、確認、CreateTransaction)に従う。<!-- ⚠️ DO NOT EDIT. Auto-generated from skills/label-purchase/SKILL.md by scripts/sync.js Edits here will be overwritten on the next sync. To change this content, edit the canonical source and re-run the sync script. -->
Label purchases charge the authorized Shippo account for real. Before purchasing, explicitly state "this will charge your Shippo account" with the carrier, service, and cost, and require the user to acknowledge. Do not purchase without that confirmation.
Before every call to CreateTransaction, summarize the following and ask the user for explicit confirmation:
Do not proceed without explicit user confirmation.
ValidateAddress (see Address Validation).CreateShipment with address_from, address_to (as inline address objects using v1 field names -- street1, city, state, zip, country), parcels, and async: false.CreateTransaction with: rate (selected rate object_id), label_file_type (default PDF_4x6), async: false.status:
SUCCESS: return tracking_number, label_url (display the COMPLETE URL -- S3 signed URLs break if truncated), and tracking_url_provider.QUEUED/WAITING: poll GetTransaction until resolved.ERROR: report messages from the messages array.All domestic steps apply, plus customs handling before shipment creation. See shippo/references/customs-guide.md for the full customs workflow.
ValidateAddress. Sender must include email and phone. Ask if missing.CreateCustomsItem per item (description, quantity, net_weight, mass_unit, value_amount, value_currency, origin_country, tariff_number). Alternatively, you can skip this step and pass inline item objects directly in the declaration (step 3).CreateCustomsDeclaration with contents_type, non_delivery_option, certify: true, certify_signer, and the items (either object_ids from step 2, or inline item objects). See shippo/references/customs-guide.md for field details.CreateShipment with all standard fields plus customs_declaration (the declaration object_id).Use this to determine the correct contents_type value:
| Scenario | Value |
|---|---|
| Selling to the recipient (commercial sale) | MERCHANDISE |
| Sending a free gift | GIFT |
| Sending a product sample | SAMPLE |
| Paper documents only | DOCUMENTS |
| Customer returning a purchased item | RETURN_MERCHANDISE |
| Charitable donation | HUMANITARIAN_DONATION |
| None of the above | OTHER (requires contents_explanation) |
The incoterm field on the customs declaration controls who pays duties and taxes:
DDU (Delivered Duty Unpaid) -- recipient pays duties at delivery.DDP (Delivered Duty Paid) -- seller covers all duties and taxes.FCA (Free Carrier) is available for advanced trade scenarios.If the user does not specify, default to DDU for standard e-commerce shipments.
To generate a return label, swap address_from and address_to so the original recipient becomes the sender and the original sender becomes the recipient. All other steps (shipment creation, rate selection, label purchase) remain the same.
Default to PDF_4x6 unless the user specifies otherwise. Supported formats: PDF_4x6, PDF_4x8, PDF_A4, PDF_A5, PDF_A6, PDF, PDF_2.3x7.5, PNG, PNG_2.3x7.5, ZPLII.
When purchasing a label via CreateTransaction, the following options may be set on the shipment or rate:
signature_confirmation on the shipment's extra field. Values: STANDARD, ADULT, CERTIFIED, INDIRECT, CARRIER_CONFIRMATION.insurance on the shipment's extra field with amount, currency, and provider.saturday_delivery to true in the shipment's extra field. Only supported by certain carriers and service levels.metadata on the transaction for order numbers or internal references.If the user already has a rate object_id: optionally call GetRate to confirm details, then confirm purchase (see Purchase Confirmation Gate), then call CreateTransaction directly.
Call CreateRefund with the transaction object_id.
Refund limitations: Void/refund eligibility depends on carrier and timing. Not all labels can be refunded after purchase. If CreateRefund fails, advise the user to contact Shippo support.
Domestic label:
(optional) ValidateAddress (x2) -> CreateShipment (with inline addresses) -> user picks rate -> confirm -> CreateTransaction
International label:
(optional) ValidateAddress (x2) -> CreateCustomsItem (per item) -> CreateCustomsDeclaration -> CreateShipment (with inline addresses + customs_declaration) -> user picks rate -> confirm -> CreateTransaction
Return label:
Same as domestic/international, but swap address_from and address_to.
Order-to-label:
CreateOrder -> CreateShipment (using order address/item data) -> user picks rate -> confirm -> CreateTransaction -> packing slip (REST fallback, see below)
Use orders to represent e-commerce fulfillment requests. An order captures the shipping address, line items, and totals -- then feeds into the standard label purchase workflow.
CreateOrder: Create an order with line items, shipping address, and order details.GetOrder: Retrieve an order by its object_id.ListOrders: List all orders.GET /orders/{ORDER_ID}/packingslip/ (returns a 24-hour S3 PDF link). Fall back to a direct REST call, or advise the user to use the Shippo dashboard until the MCP gap is closed.CreateOrder with the shipping address, line items (title, quantity, sku, total_price, etc.), and order-level fields.CreateShipment, then follow the standard label purchase flow (rate selection, confirmation, CreateTransaction).原文・著作権は Anthropic および各プラグイン作者に帰属します。日本語訳は Claude API による自動翻訳です。