← ShippoCONTENT HISTORY

Update to Shippo

Snapshot Sep 30, 2026 · 22:48 UTC · version 2.0.0

Collection source: not recorded for this historical snapshot.

WHAT CHANGED · RULE-BASED ANALYSIS

First saved snapshot

No earlier snapshot is available to establish a change.

Compare saved observations

Download comparison JSON
Full technical diff · 0 changed fields
Full snapshot data
{
  "name": "batch-shipping",
  "description": "Process bulk shipments from CSV files, create and purchase batch labels, and generate end-of-day manifests via the Shippo API",
  "included_files": [
    {
      "relative_path": "shippo/references/address-formats.md",
      "size_in_bytes": 4083
    },
    {
      "relative_path": "shippo/references/carrier-guide.md",
      "size_in_bytes": 5690
    },
    {
      "relative_path": "shippo/references/csv-format.md",
      "size_in_bytes": 5976
    },
    {
      "relative_path": "shippo/references/customs-guide.md",
      "size_in_bytes": 9321
    },
    {
      "relative_path": "shippo/references/error-reference.md",
      "size_in_bytes": 11389
    },
    {
      "relative_path": "shippo/references/international-shipping.md",
      "size_in_bytes": 6910
    },
    {
      "relative_path": "shippo/references/label-formats.md",
      "size_in_bytes": 2825
    },
    {
      "relative_path": "shippo/references/rate-shopping-guide.md",
      "size_in_bytes": 4320
    },
    {
      "relative_path": "shippo/references/response-envelope.md",
      "size_in_bytes": 1184
    },
    {
      "relative_path": "shippo/references/tool-reference.md",
      "size_in_bytes": 15981
    }
  ],
  "skill_md_contents": "---\nname: batch-shipping\ndescription: Process bulk shipments from CSV files, create and purchase batch labels, and generate end-of-day manifests via the Shippo API\nmetadata:\n  version: \"1.5.2\"\n---\n\n# Batch Shipping\n\n## Purchases Are Live\n\nBatch purchases charge the authorized Shippo account for real. Before `PurchaseBatch`, show the shipment count, carrier/service, and estimated total cost, and require explicit user confirmation.\n\n---\n\n## Purchase Confirmation Gate\n\nBefore every call to `PurchaseBatch`, summarize the following and ask the user for explicit confirmation:\n- Total number of shipments to be purchased\n- Carrier and service level (or selection rule if varied)\n- Estimated total cost\n- Number of domestic vs international shipments\n\n**Do not proceed without explicit user confirmation.**\n\n---\n\n## CSV Batch Processing\n\nSee `shippo/references/csv-format.md` for the column specification.\n\n1. Read and parse the CSV. Validate required columns are present. Report row count.\n2. Validate each row for non-empty required fields. Report invalid rows with reasons.\n3. Detect international rows (sender_country != recipient_country). Create customs declarations for those rows. See `shippo/references/customs-guide.md`. Use correct customs enum values: `RETURN_MERCHANDISE` (not `RETURN`) for returned goods, `HUMANITARIAN_DONATION` (not `HUMANITARIAN`) for charitable donations.\n4. Build the `batch_shipments` array with inline address and parcel objects per row.\n5. Call `CreateBatch` with the array.\n6. Poll `GetBatch` until status changes from `VALIDATING` to `VALID`. See Polling Intervals below.\n7. Review per-shipment validation results. Report failures before proceeding.\n8. **Confirm purchase** (see Purchase Confirmation Gate above).\n9. Call `PurchaseBatch` to buy labels for all valid shipments.\n10. Poll `GetBatch` until status changes from `PURCHASING` to `PURCHASED`. See Polling Intervals below.\n11. Report: total attempted, succeeded, failed. For successes: tracking_number and label_url (complete URL). For failures: error messages.\n\n### Batch Size Guidance\n\nFor batches over 500 shipments, consider splitting into multiple batches. Large batches take longer to validate and purchase, and a single failure can be harder to diagnose.\n\n---\n\n## Polling Intervals\n\n- For batches under 100 shipments: poll every 3-5 seconds.\n- For batches with 100+ shipments: poll every 5-10 seconds.\n- Report progress to the user every 30 seconds.\n- Stop after 60 retries and suggest the user check back later using `GetBatch` with the batch object_id.\n\n---\n\n## Batch with Rate Shopping\n\n1. Call `CreateShipment` per shipment to get rate quotes (see Rate Shopping).\n2. Present rates. User picks a service level rule (e.g., \"cheapest for each\" or a specific carrier/service).\n3. Build `batch_shipments` with `servicelevel_token` per item.\n4. Create, validate, **confirm purchase**, purchase, report as above.\n\n---\n\n## Managing an Existing Batch\n\n- Add shipments: `AddShipmentsToBatch` (before purchase only). Note: adding an invalid shipment will change the entire batch status to `INVALID`. Check per-shipment statuses after adding.\n- Remove shipments: `RemoveShipmentsFromBatch` (before purchase only).\n\n---\n\n## End-of-Day Manifest\n\n1. Collect: `carrier_account` (object_id), `shipment_date` (YYYY-MM-DD, default today), `address_from` (pickup address).\n2. Optionally collect specific transaction object_ids to scope the manifest. You must pass specific transaction object_ids -- there is no auto-include for a date range.\n3. Call `CreateManifest`.\n4. Poll `GetManifest` until status is `SUCCESS` or `ERROR`.\n5. Return the manifest PDF URL(s) and shipment count.\n\n---\n\n## Quick Reference\n\n**CSV batch:**\nParse CSV -> `CreateCustomsDeclaration` (international rows) -> `CreateBatch` -> poll `GetBatch` -> confirm -> `PurchaseBatch` -> poll `GetBatch`\n\n**Manifest:**\n`CreateManifest` (with transaction object_ids) -> poll `GetManifest`\n"
}

SHA-256: 56d59b15df5b45c69750f415c11615b8f416fdfb392ff2087ae9648565b4936f