{"version":"v1","changelog":[{"version":"1.3.0","date":"2026-10-03","notes":["429 answers carry code rate_limited, retry_after_seconds and reset_at with Retry-After; X-RateLimit-* headers show the limit that applies to the key (live 120, test 30, publishable 60 per website).","Every /partner/v1 response (public, caller and college routes too) carries X-Request-Id; error bodies include request_id.","GET /scope: exact remaining allowance per college and for the account, and course aliases.","Names must be letters (any language); a misspelt state gets a suggestion.","Disputes take up to 3 attachments (PDF/JPEG/PNG/WebP, 2 MB each).","lead.edited carries changes {field: {from, to}}; a course change re-checks duplicates.","New webhook events fire: grant.paused, grant.resumed, dispute.updated (our reply on a case).","IP allowlists accept IPv6 and IPv6 CIDR; a refused request names your address (your_ip) and the portal shows the last refused address.","OpenAPI now covers every route, including runs, CSV exports, caller links, college events and signed links.","Referral links (/r/<code> on the website, with QR) and WhatsApp links: student-filled leads arrive through the same review as your other channels (channel referral / whatsapp)."]},{"version":"1.2.0","date":"2026-10-03","notes":["Retired the v0 door: POST /lead-center/ingest and the /lead-center/entry* caller routes are gone — use POST /partner/v1/leads and /partner/v1/caller/*.","The single pre-v1 account key is no longer accepted; only pk_live_ / pk_test_ / pk_pub_ keys issued from the portal work.","Partner notifications: lead holds, rejections, statements, payments, disputes, key and webhook events appear in the portal notification centre and by email per user preference.","Public partnership applications: /partner-program on the website (status applied)."]},{"version":"1.1.0","date":"2026-10-03","notes":["Billing: GET /payouts returns payout items (on hold / payable / in statement / paid) and statements; GET /runs/:id returns one statement with a 15-minute PDF link; statement share links (7 days) at /partner/v1/statements/:token.","GET /rate-card now returns your rate card rows (college / course / state specific rows win).","Webhooks: payout.accrued, payout.payable, payout.reversed, payout.clawback, run.statement_ready, payout.paid, rate_card.changed, dispute.resolved now fire."]},{"version":"1.0.0","date":"2026-10-03","notes":["Partner API v1: leads (create, bulk, read, list, correct, withdraw, dispute), scope, rate card, payouts, batches, webhook log and replay.","Keys: pk_live_ / pk_test_ / pk_pub_ with 24-hour rotation overlap.","Sandbox: test keys write to a separate table with scripted scenarios.","Signed webhooks (X-CP-Signature v1) with retries and replay."]}]}