Skip to main content
The public API is available to enabled employer workspaces. Ask Shor to enable your workspace before connecting an integration. Use the API base URL supplied for your environment; production uses 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

Connecting an AI assistant instead? Start with Connect AI assistants. Responses contain a curated public representation. Single resources are bare objects; lists return { 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 and an optional external reference. It does not sign or activate a contract or accept the dashboard’s nested compensation/wizard payload. Every POST requires Content-Type: application/json and an Idempotency-Key. Follow Idempotency and retries to generate and retain one key per intentional action.
Use externalReference to correlate a draft with your integration. Its uniqueness and retention semantics are described in Idempotency and retries.

Approve work

Fetch the timesheet or milestone, review its amount, currency and payment date, then send its version 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.

Errors and retries

See API errors for response shapes, error codes, and recovery steps; Rate limits for request budgets; and Idempotency and retries for safe write retries and reconciliation.