Download the PHP package docustay/docustay-php without Composer
On this page you can find all versions of the php package docustay/docustay-php. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download docustay/docustay-php
More information about docustay/docustay-php
Files in docustay/docustay-php
Package docustay-php
Short Description Official Docustay API client: send documents for signature and follow them from your own software. https://docustay.app/docs
License MIT
Homepage https://docustay.app
Informations about the package docustay-php
Docustay PHP client
Official Docustay API client: send documents for signature and follow them from your own software. https://docustay.app/docs
Generated from the published OpenAPI document (https://docustay.app/api/openapi.json): all 77 operations. MIT licence. Source of truth: https://github.com/Docustay/docustay
Send documents for signature and follow them, from your own software.
Authentication. Send Authorization: Bearer <key>. Make keys in Settings → Developers → API keys and give each only the scopes it needs (there are 35 in all): accounts:read, accounts:write, booking:read, booking:write, documents:read, documents:write, growth:read, growth:write, items:read, items:write, lead:write, money:read, money:write, network:read, network:write, notifications:read, notifications:write, people:read, people:write, platform:read, platform:write, records:read, records:write, settings:read, settings:write, plays:read, plays:write, drafts:write, templates:read, templates:write, webhooks:read, webhooks:write, reports:read, account:read, embedded:write. A key that starts dsk_test_ works in test mode: documents it sends are practice runs (emailed only to the sender, stamped TEST, never counted or billed), it can only see and act on test documents (any other document answers 404), and it can sign them itself with POST /api/v1/documents/{id}/test-sign. A key can also be limited to a list of addresses, given an expiry, or made draft-only.
Draft-only keys. A draft-only key can make and edit drafts but cannot send. Asking it to send answers 202 with an approval, the document stays a draft, and a person approves or declines in Settings → Developers → Approvals. Keys can also have a daily limit of drafts and sends; past it you get 429.
Payments. A template may contain payment fields (text tag type=payment with one of amount, formula, price or link). The signer pays on Stripe's hosted page; the money goes to your own connected Stripe account; Docustay's fee is 2% on the Free plan and 0% on Pro, plus Stripe's own fees. The document's payments list shows each payment, its receipt and the fee. Card details never reach Docustay.
Idempotency. Requests that create a document or a template, or send one, need an Idempotency-Key header (8–200 characters). Repeating a request with the same key and body returns the first answer instead of doing it twice.
Your own reference. Documents and templates take externalId (your id for it) and metadata (up to 20 short key/value pairs). List with externalId= or metadata[key]=value to find them again, and both come back in webhooks.
Errors. Every error is { \"error\": { \"kind\", \"message\", \"requestId\", \"retryable\" } }. kind is one of invalid, unauthenticated, forbidden, not_found, conflict, rate_limited, dependency, timeout. Quote the requestId to support, or search it in Settings → Developers → API log. Plan limits are 403 forbidden with error.detail.code: plan_document_limit (the plan's documents this month are used; a form counts the first time it is published, and every signed response counts) or plan_template_limit (Free: 5 new templates a month, documents and forms together; a new version of a template you have does not count). Both carry detail.used, detail.limit and detail.resetsAt (the first of next month, UTC). Everything already made keeps working. Pro and self-hosted installs have no template limit.
Rate limits. Each key has its own per-minute budget. Every answer carries RateLimit-Limit, RateLimit-Remaining and RateLimit-Reset (seconds); over the budget you get 429 with a Retry-After header.
Versions. Every answer carries Docustay-Version, a date. A change that could break a caller gets a new date and is announced in the changelog before it ships; additions (a new field, a new route) are not breaking and do not change the date.
Pagination. Lists take limit (1–200) and cursor; the answer carries page.nextCursor (null on the last page).
Signing links. No response contains a signing link or access code, with one exception you control: a seat you send in embedded can be given an embedded signing session (POST /api/v1/documents/{id}/embed-session), a one-hour link for a frame on a website you listed. A key can start and follow a signature, and put your own signer in front of the form for seats you marked yourself; it cannot sign for anyone.
For more information, please visit https://docustay.app/contact.
Installation & Usage
Requirements
PHP 7.4 and later. Should also work with PHP 8.0.
Composer
To install the bindings via Composer, add the following to composer.json:
Then run composer install
Manual Installation
Download the files and include autoload.php:
Getting Started
Please follow the installation procedure and then run the following:
API Endpoints
All URIs are relative to https://app.docustay.app
| Class | Method | HTTP request | Description |
|---|---|---|---|
| AccountApi | aiUsage | GET /api/v1/ai/usage | AI credits used against your plan |
| AccountApi | paymentsStatus | GET /api/v1/payments/status | Is Stripe ready to take a payment? |
| AccountApi | usage | GET /api/v1/usage | Documents, templates and emails used against your plan |
| AutomationsApi | listAutomations | GET /api/v1/automations | List automations |
| AutomationsApi | setAutomationOn | POST /api/v1/automations/{id}/enable | Switch an automation on or off |
| ContractsApi | listContracts | GET /api/v1/contracts | List signed contracts with their key dates |
| ContractsApi | setContractDate | POST /api/v1/contracts/{id}/dates | Correct a contract's key date |
| DocumentsApi | auditLogCsv | GET /api/v1/documents/{id}/audit-log.csv | The document's audit log as CSV |
| DocumentsApi | cancelAiJob | POST /api/v1/documents/ai/jobs/{id}/cancel | Cancel an AI job |
| DocumentsApi | checkDocument | POST /api/v1/documents/check | Check a document's words before making it |
| DocumentsApi | createDocument | POST /api/v1/documents | Make a document from words and people |
| DocumentsApi | detectFields | POST /api/v1/documents/detect-fields | Find the fields on a PDF |
| DocumentsApi | downloadSignedPdf | GET /api/v1/documents/{id}/signed.pdf | Download the signed copy |
| DocumentsApi | draftWithAi | POST /api/v1/documents/ai/draft | Ask for an AI-written draft |
| DocumentsApi | editWithAi | POST /api/v1/documents/ai/edit | Ask the assistant to change a document |
| DocumentsApi | embedSession | POST /api/v1/documents/{id}/embed-session | Start an embedded signing session for a seat |
| DocumentsApi | getAiDraft | GET /api/v1/documents/ai/jobs/{id} | Read an AI draft job |
| DocumentsApi | getDocument | GET /api/v1/documents/{id} | One document and where each person is |
| DocumentsApi | getDraftSource | GET /api/v1/documents/{id}/source | The words, people and choices of a draft |
| DocumentsApi | getWizard | GET /api/v1/ai/wizard | The wizard's questions |
| DocumentsApi | listDocuments | GET /api/v1/documents | List documents |
| DocumentsApi | listTemplates | GET /api/v1/documents/templates | Templates you can send |
| DocumentsApi | remind | POST /api/v1/documents/{id}/remind | Remind the people who still have to sign |
| DocumentsApi | reviseDocument | POST /api/v1/documents/{id}/revise | Change the words of a draft |
| DocumentsApi | search | GET /api/v1/search | Search documents, templates, forms and people |
| DocumentsApi | sendDocument | POST /api/v1/documents/send | Send a template to people to sign |
| DocumentsApi | sendDraft | POST /api/v1/documents/{id}/send | Send a draft |
| DocumentsApi | testSign | POST /api/v1/documents/{id}/test-sign | Sign a test document (test mode only) |
| DocumentsApi | voidDocument | POST /api/v1/documents/{id}/void | Void a document that is still out for signature |
| EmailApi | listEmailTemplates | GET /api/v1/email-templates | The workspace's email wording |
| EmailApi | listEmails | GET /api/v1/emails | The log of email about your documents |
| EmailApi | previewEmailTemplate | POST /api/v1/email-templates/{kind}/preview | Preview an email with made-up names |
| EmailApi | resetEmailTemplate | DELETE /api/v1/email-templates/{kind} | Back to the standard wording |
| EmailApi | saveEmailTemplate | PUT /api/v1/email-templates/{kind} | Set the wording of one email |
| EmbeddingApi | builderSession | POST /api/v1/embedded/builder-session | Start an embedded template builder session |
| EmbeddingApi | scribeSession | POST /api/v1/embedded/scribe-session | Start an embedded Scribe session |
| FormsApi | getForm | GET /api/v1/forms/{id} | Get a form |
| FormsApi | listFormResponses | GET /api/v1/forms/{id}/responses | List a form's responses |
| FormsApi | listFormTemplates | GET /api/v1/forms/templates | List form templates |
| FormsApi | listForms | GET /api/v1/forms | List forms |
| FormsApi | publishForm | POST /api/v1/forms/publish | Publish a form |
| FormsApi | setFormOpen | POST /api/v1/forms/{id}/open | Open or close a form |
| FormsApi | unpublishForm | POST /api/v1/forms/{id}/unpublish | Unpublish a form |
| PaymentsApi | listPayments | GET /api/v1/payments | List payments taken through documents and forms |
| PaymentsApi | refundPayment | POST /api/v1/payments/{id}/refund | Refund a payment, in full or in part |
| PlaysApi | answerDraft | POST /api/v1/drafts/{draftRef}/answers | Answer a template's questions |
| PlaysApi | archivePlay | DELETE /api/v1/plays/{name} | Archive a play |
| PlaysApi | duplicatePlay | POST /api/v1/plays/{name}/duplicate | Copy a play under a new name |
| PlaysApi | getPlay | GET /api/v1/plays/{name} | One play |
| PlaysApi | listPlaybooks | GET /api/v1/playbooks | List playbooks (packs) |
| PlaysApi | listPlays | GET /api/v1/plays | List plays |
| PlaysApi | publishPlay | POST /api/v1/plays/{name}/publish | Publish a play version |
| PlaysApi | savePlay | POST /api/v1/plays | Save a play (a new version) |
| PlaysApi | savePlaybook | POST /api/v1/playbooks | Save a playbook (pack) |
| PlaysApi | setPlaybookOn | POST /api/v1/playbooks/{name}/enable | Switch a pack on or off |
| PlaysApi | startDraft | POST /api/v1/drafts | Start a draft from a template |
| PlaysApi | testPlay | POST /api/v1/plays/test | Check a play without saving it |
| ReportsApi | report | GET /api/v1/reports | Counts of what was sent and completed |
| TeamsApi | listTeams | GET /api/v1/teams | Teams and their members |
| TemplatesApi | createTemplateFromFile | POST /api/v1/templates/file | Make a template from a file with text tags |
| TemplatesApi | createTemplateFromHtml | POST /api/v1/templates/html | Make a template from HTML with text tags |
| TemplatesApi | createTemplateFromSource | POST /api/v1/templates/source | Make a template from a document source |
| TemplatesApi | customizeLibraryTemplate | POST /api/v1/templates/library/{slug}/customize | Customize a built-in template |
| TemplatesApi | draftFromLibraryTemplate | POST /api/v1/templates/library/{slug}/documents | Make a draft from a built-in template |
| TemplatesApi | getLibraryTemplate | GET /api/v1/templates/library/{slug} | One built-in template |
| TemplatesApi | getTemplate | GET /api/v1/templates/{id} | One template and its seats |
| TemplatesApi | listLibraryTemplates | GET /api/v1/templates/library | List the built-in templates |
| TemplatesApi | setTemplateDefaults | POST /api/v1/templates/{id}/defaults | Set what a document made from a template starts with |
| TemplatesApi | useTemplate | POST /api/v1/templates/{id}/documents | Use a written template for people |
| WebhooksApi | createWebhook | POST /api/v1/webhooks | Add a webhook |
| WebhooksApi | deleteWebhook | DELETE /api/v1/webhooks/{id} | Remove a webhook |
| WebhooksApi | fetchRelayEvents | GET /api/v1/webhooks/{id}/relay | Fetch stored deliveries of a relay webhook |
| WebhooksApi | listWebhookDeliveries | GET /api/v1/webhooks/{id}/deliveries | Recent deliveries |
| WebhooksApi | listWebhookTopics | GET /api/v1/webhooks/topics | The events a webhook can subscribe to |
| WebhooksApi | listWebhooks | GET /api/v1/webhooks | List webhooks |
| WebhooksApi | rotateWebhookSecret | POST /api/v1/webhooks/{id}/rotate | Rotate the signing secret |
| WebhooksApi | testWebhook | POST /api/v1/webhooks/{id}/test | Send a test event |
Models
- AiDraftJob
- AiUsage
- AiUsageByFeatureValue
- AiUsageThinkHarder
- AnswerDraftRequest
- BuilderSession
- BuilderSessionRequest
- CheckDocument200Response
- CheckDocumentRequest
- CreateDocumentRequest
- CreateTemplateFromSource201Response
- CreateTemplateFromSourceRequest
- CreateWebhook201Response
- CreateWebhookRequest
- CustomizeLibraryTemplateRequest
- DeleteWebhook200Response
- DetectFieldsRequest
- DetectFieldsResult
- DetectFieldsResultDocumentsInner
- DetectFieldsResultPagesInner
- DetectFieldsResultSummary
- DetectedField
- Document
- DocumentEventsInner
- DocumentMade
- DocumentMadeApproval
- DocumentProgress
- DocumentSummary
- DraftFromLibraryTemplateRequest
- DraftWithAi202Response
- DraftWithAiRequest
- DuplicatePlayRequest
- EditWithAiRequest
- EditWithAiRequestVariablesInner
- EmailChoice
- EmailWording
- EmbedSession200Response
- EmbedSessionRequest
- Error
- ErrorError
- FetchRelayEvents200Response
- FetchRelayEvents200ResponseEventsInner
- FileTemplateRequest
- FormSettings
- FormSettingsCounterSign
- GetDraftSource200Response
- HtmlTemplateRequest
- ListDocuments200Response
- ListDocuments200ResponsePage
- ListEmailTemplates200Response
- ListEmails200Response
- ListLibraryTemplates400Response
- ListLibraryTemplates400ResponseError
- ListTeams200Response
- ListTeams200ResponseTeamsInner
- ListTeams200ResponseTeamsInnerMembersInner
- ListTemplates200Response
- ListWebhookDeliveries200Response
- ListWebhookDeliveries200ResponseDeliveriesInner
- ListWebhookTopics200Response
- ListWebhooks200Response
- Party
- Payment
- PaymentFee
- PaymentsStatus200Response
- Person
- PublishFormRequest
- PublishPlayRequest
- RefundPaymentRequest
- Remind200Response
- RemindRequest
- Report
- ReportByDayInner
- ReportByTeamInner
- ReportByTemplateInner
- ReportTotals
- ReportWindow
- ReviseDocument201Response
- ReviseDocumentRequest
- RotateWebhookSecret200Response
- RotateWebhookSecretRequest
- SavePlayRequest
- SavePlaybookRequest
- ScribeSessionRequest
- SendChoices
- SendDocument201Response
- SendDocument201ResponseNotEmailedInner
- SendDraft201Response
- SendDraft202Response
- SendDraft202ResponseApproval
- SendRequest
- SendRequestPartiesInner
- SetAutomationOnRequest
- SetContractDateRequest
- SetFormOpenRequest
- SetPlaybookOnRequest
- SetTemplateDefaults200Response
- SetTemplateDefaultsRequest
- StartDraftRequest
- StartDraftRequestAnswersValue
- StartDraftRequestPeopleInner
- Template
- TemplateMade
- TemplateMadeDetected
- TemplateMadeWarningsInner
- TemplateSeatsInner
- TestSign200Response
- TestSign200ResponseProgress
- TestSignRequest
- TestWebhook200Response
- TestWebhookRequest
- Usage
- UsageDocuments
- UsageEmails
- UsagePeriod
- UsageTemplates
- UseTemplateRequest
- VoidDocument200Response
- VoidDocumentRequest
- WebhookEndpoint
- WizardBrief
- WizardBriefPayment
Authorization
Authentication schemes defined for the API:
bearerAuth
- Type: Bearer authentication
Tests
To run the tests, use:
Author
About this package
This PHP package is automatically generated by the OpenAPI Generator project:
- API version:
2026-10-07- Generator version:
7.10.0
- Generator version:
- Build package:
org.openapitools.codegen.languages.PhpClientCodegen
All versions of docustay-php with dependencies
ext-curl Version *
ext-json Version *
ext-mbstring Version *
guzzlehttp/guzzle Version ^7.3
guzzlehttp/psr7 Version ^1.7 || ^2.0