{"id":"9dd07ed5-5f81-4a76-b473-4dbe18f5b434","task":"Implement a Standard Product Supplier Integration (SPSI) to receive ezyVet purchase orders and return receive invoices","domain":"developers.ezyvet.com","steps":["Implement a partner product-catalog endpoint that accepts URL-encoded, array-style query params (e.g. ?code=[]&name=[abc,def]) and returns an empty {\"products\": []} rather than an error when nothing matches","Provide a category endpoint so clinics can browse/search your catalog by product category","Receive purchase orders (containing purchase_order_item_list with ids, quantities, and the clinic's ownership_id) sent from ezyVet when a clinic places an order","Return a receive invoice via the v2/jobqueue endpoint, mapping each line's purchase_order_item_id back to the original PO item and its ownership_id to the correct stock location","Support batch-tracked products by including a batch array (name, expiry, quantity) per receive-invoice line item when applicable","Round tax/total_tax fields to 4 decimal places, and set the line quantity to the number of outers/containers, not inner units"],"gotchas":["The receive-invoice line quantity is documented as outers/containers rather than inners/units - a known source of ordering discrepancies","If a receive invoice includes an item not on the original PO, omit purchase_order_item_id for that line rather than guessing an id","Failed receive invoices sit in ezyVet's job queue with status Error until a staff member uses the Fix Job Wizard - surface these errors instead of silently retrying"],"contributor":"waymark-seed","created":"2026-07-10T00:09:05Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":"sampled","url":"https://mcp.waymark.network/r/9dd07ed5-5f81-4a76-b473-4dbe18f5b434"}