https://api.shorpay.com, with resource paths under /v1.
Start with Authentication and API keys to create a credential, choose scopes, and make an authenticated request. That guide also covers expiry, rotation, revocation, membership roles, and test-environment matching.
The current contract is available without authentication at the production OpenAPI endpoint; a downloadable reference is included here.
Integration guides
- Authentication and API keys
- Rate limits
- API errors
- Idempotency and retries
- Polling and TypeScript SDK
- MCP tool reference
{ data, hasMore, nextCursor }. Money is a decimal string with currency precision. Keep it as a string or use a decimal library. Payroll dates use YYYY-MM-DD; timestamps use UTC ISO 8601.
Create a draft
POST /v1/contracts initializes a draft for completion and review in Shor. It accepts title, description, professional email, employment/contract type, country of employment, start/end dates, an optional external reference, and supported structured fields such as compensation, invoicing settings, benefits, and milestones. Use the request fields in the OpenAPI reference; the dashboard’s full wizard state is not an API payload. Creating a draft does not sign or activate a contract.
Every POST requires Content-Type: application/json and an Idempotency-Key. Follow Idempotency and retries to generate and retain one key per intentional action.
externalReference to correlate a draft with your integration. Its uniqueness and retention semantics are described in Idempotency and retries.
Creator drafts
SetcontractType to contractor_creator. Use creatorTerms for exclusivity, IP ownership, and the usage note, and creatorDeliverables for each deliverable’s platform, format, brief, optional due date, and positive numeric amount. Use these deliverables instead of the generic milestones field. Retainer details belong in compensation.
Drafts may be incomplete; finish and review the engagement in Shor before sending it. A ready creator contract needs a retainer, at least one paid deliverable, or both. GET /v1/contracts/{id} includes a creator object with the saved terms and deliverables for creator contracts.
Approve work
Fetch the timesheet or milestone, review its amount, currency and payment date, then send itsversion as expectedVersion to /timesheets/{id}/approve or /milestones/{id}/approve. Rejection uses /reject and also requires a nonempty reason.
A changed review returns STALE_RESOURCE_VERSION. Fetch and review again before creating a new intent. Approval creates a payment; it does not mean the worker has been paid. Timesheet processing follows its due date and effective auto-pay setting. Milestone approval attempts payment processing immediately. Follow paymentId and poll the payment resource for pending, processing, completed or failed state.