{"id":"87330d2e-cd16-454c-8569-12646bb0b832","slug":"clawhub-zmtucker-sportsinc-sportslink","name":"sportsinc-sportslink","description":"Sports Inc SportsLink API adapter — pull a dealer's invoices (\"documents\") from the Sports Inc SportsWeb Invoice Center and mark them consumed. Sports Inc is a buying group that does NOT send individual vendor invoices; its SportsLink REST API is where the invoices live. Use when you need to retrieve Sports Inc invoices for payables — \"get the Sports Inc invoices\", \"pull SportsLink documents\", \"fetch this month's SI invoices to match against POs\". This is the SOURCE adapter only: it authenticates, pages, normalises each SI document into a common invoice shape (po_number, invoice_number/date, lines[], charges, total, is_credit), and marks documents historical once imported. Some documents are scanned rather than EDI, so the API returns their header totals with NO line items (`has_lines: false`) — every retrieval names those in `needs_line_recovery`, and they are not billable as returned. For each, this skill logs in to the SportsWeb portal, downloads the invoice PDF, OCRs the scanned vendor invoice into text for the agent to read, and then checks the extracted lines against the API's own merchandise total before any of it is billable. It is customer-agnostic (every Sports Inc dealer uses this same API) and touches no ERP — pair it with a payables workflow (e.g. `drivethru-payable-matching`) to match against POs and create the bill.","canonicalUrl":"https://www.xpersona.co/agent/clawhub-zmtucker-sportsinc-sportslink","sourceUrl":"https://clawhub.ai/zmtucker/sportsinc-sportslink","homepage":"https://clawhub.ai/zmtucker/skills/sportsinc-sportslink","source":"CLAWHUB","vendor":{"slug":"clawhub","label":"Clawhub","url":"https://clawhub.ai/zmtucker/skills/sportsinc-sportslink"},"protocols":["OPENCLEW"],"capabilities":[],"trustScore":null,"trustConfidence":"unknown","artifactCount":0,"benchmarkCount":0,"lastRelease":"0.7.1","freshnessAt":"2026-10-11T06:25:36.469Z","freshnessLabel":"Oct 11, 2026","securityReviewed":true,"openapiReady":false,"stats":[{"label":"Trust score","value":"Unknown"},{"label":"Compatibility","value":"OpenClaw"},{"label":"Freshness","value":"Oct 11, 2026"},{"label":"Vendor","value":"Clawhub"},{"label":"Artifacts","value":"0"},{"label":"Benchmarks","value":"0"},{"label":"Last release","value":"0.7.1"}],"factsPreview":[{"factKey":"vendor","category":"vendor","label":"Vendor","value":"Clawhub","href":"https://clawhub.ai/zmtucker/skills/sportsinc-sportslink","sourceUrl":"https://clawhub.ai/zmtucker/skills/sportsinc-sportslink","sourceType":"profile","confidence":"medium","observedAt":"2026-10-11T06:25:36.608Z","isPublic":true},{"factKey":"protocols","category":"compatibility","label":"Protocol compatibility","value":"OpenClaw","href":"https://www.xpersona.co/api/v1/agents/clawhub-zmtucker-sportsinc-sportslink/contract","sourceUrl":"https://www.xpersona.co/api/v1/agents/clawhub-zmtucker-sportsinc-sportslink/contract","sourceType":"contract","confidence":"medium","observedAt":"2026-10-11T06:25:36.608Z","isPublic":true},{"factKey":"traction","category":"adoption","label":"Adoption signal","value":"1.1K downloads","href":"https://clawhub.ai/zmtucker/sportsinc-sportslink","sourceUrl":"https://clawhub.ai/zmtucker/sportsinc-sportslink","sourceType":"profile","confidence":"medium","observedAt":"2026-10-11T06:25:36.608Z","isPublic":true},{"factKey":"latest_release","category":"release","label":"Latest release","value":"0.7.1","href":"https://clawhub.ai/zmtucker/sportsinc-sportslink","sourceUrl":"https://clawhub.ai/zmtucker/sportsinc-sportslink","sourceType":"release","confidence":"medium","observedAt":"2026-08-07T13:59:35.182Z","isPublic":true},{"factKey":"handshake_status","category":"security","label":"Handshake status","value":"UNKNOWN","href":"https://www.xpersona.co/api/v1/agents/clawhub-zmtucker-sportsinc-sportslink/trust","sourceUrl":"https://www.xpersona.co/api/v1/agents/clawhub-zmtucker-sportsinc-sportslink/trust","sourceType":"trust","confidence":"medium","observedAt":null,"isPublic":true}],"highlights":["1.1K downloads","Trust evidence available"],"agentCard":{"name":"sportsinc-sportslink","description":"Sports Inc SportsLink API adapter — pull a dealer's invoices (\"documents\") from the Sports Inc SportsWeb Invoice Center and mark them consumed. Sports Inc is a buying group that does NOT send individual vendor invoices; its SportsLink REST API is where the invoices live. Use when you need to retrieve Sports Inc invoices for payables — \"get the Sports Inc invoices\", \"pull SportsLink documents\", \"fetch this month's SI invoices to match against POs\". This is the SOURCE adapter only: it authenticates, pages, normalises each SI document into a common invoice shape (po_number, invoice_number/date, lines[], charges, total, is_credit), and marks documents historical once imported. Some documents are scanned rather than EDI, so the API returns their header totals with NO line items (`has_lines: false`) — every retrieval names those in `needs_line_recovery`, and they are not billable as returned. For each, this skill logs in to the SportsWeb portal, downloads the invoice PDF, OCRs the scanned vendor invoice into text for the agent to read, and then checks the extracted lines against the API's own merchandise total before any of it is billable. It is customer-agnostic (every Sports Inc dealer uses this same API) and touches no ERP — pair it with a payables workflow (e.g. `drivethru-payable-matching`) to match against POs and create the bill.","source":"CLAWHUB","sourceId":"clawhub:s17fq291581evd78xzn1930b0n87bfny:sportsinc-sportslink","homepage":"https://clawhub.ai/zmtucker/skills/sportsinc-sportslink","repository":"https://clawhub.ai/zmtucker/sportsinc-sportslink","documentation":"https://www.xpersona.co/agent/clawhub-zmtucker-sportsinc-sportslink","protocols":["OPENCLEW"],"examples":[{"kind":"example","language":"bash","snippet":"# The un-imported inbox: every active document, normalised. Scanned documents\n# come back with no lines and are named in `needs_line_recovery` — see the\n# retrieval procedure below. Do NOT pass `ediOnly: true` for a billing run: it\n# filters those documents out of the result entirely, so they are never billed\n# and simply age.\npython3 scripts/sportslink.py list '{\"active\": true, \"lines\": true}'\n\n# A specific document (ignores the active-only filter)\npython3 scripts/sportslink.py get '{\"poNumber\": \"P13189\"}'\n\n# Mark documents consumed — AFTER they've been billed (honors SPORTSINC_DRY_RUN)\npython3 scripts/sportslink.py mark-historical '{\"siDocNumbers\": [12345, 23456]}'\n\n# A2A-safe action for agent-to-agent calls (structured request/response contract)\npython3 scripts/sportslink.py get-for-a2a '{\"customer_ref\": \"DEALER-001\", \"date_range\": {\"start\": \"2024-01-01\", \"end\": \"2024-12-31\"}, \"statuses\": [\"open\"]}'\n\n# Header-only (scanned) document: get its PDF, read it yourself, then get checked\npython3 scripts/sportslink.py fetch-invoice-doc '{\"si_doc_number\": 23962348}'\npython3 scripts/sportslink.py reconcile-lines '{\"si_doc_number\": 23962348, \"lines\": [...]}'"},{"kind":"example","language":"json","snippet":"\"needs_line_recovery\": [24682750, 24684277],\n\"credits\": [24690002],\n\"next_step\": \"2 document(s) have no line detail from the API …\""}]}}