Agreements
Archive the executed PDF
PUT /api/v1/reservations/{id}/agreement/document
The signed document, stored by Quarters next to the agreement so it outlives the provider’s retention and the dashboard can serve it. Send the bytes as application/pdf, at most 25 MB, not a link: a URL to fetch would be a request from inside Quarters to wherever the caller says.
Path parameters
| Parameter | In | Type | Description |
|---|---|---|---|
| id required | path | string | The reservation id. |
Request body
The raw PDF bytes, sent as Content-Type: application/pdf.
Response
200 { agreement: Agreement }
Agreement fields
| Field | Type | Description |
|---|---|---|
| id | string | |
| version | integer | Counts up on every re-issue. Superseded versions are not listed. |
| provider | enum | quarters for an envelope Quarters issued itself, external for one written through this API. "quarters""external" |
| externalId | string | null | Your stable id for the envelope, as you reported it. |
| status | enum | "sent""completed""declined""failed""superseded""voided" |
| templateName | string | null | The Quarters template used; null for an external envelope. |
| sentAt | timestamp | null | ISO 8601 |
| completedAt | timestamp | null | ISO 8601 |
| declinedAt | timestamp | null | ISO 8601 |
| voidedAt | timestamp | null | ISO 8601 |
| error | string | null | Why it failed. Only kept while status is failed. |
| documentUrl | string | null | The provider-hosted copy of the executed document, as reported. |
| document | object | null | Set once the executed PDF has been archived: by Quarters for its own envelopes, by you through the document endpoint for yours. |
| signers | Signer[] | |
| createdAt | timestamp | ISO 8601 |
| updatedAt | timestamp | ISO 8601 |
Errors
Every failure is { error, message }; see Errors. A missing or expired bearer is a 401 on every endpoint
but the token exchange.
| Status | error | When |
|---|---|---|
| 404 | not_found | Unknown reservation, or one without an agreement. |
| 409 | conflict | The current agreement is a Quarters envelope (it has its own document), or is not completed yet. |
| 413 | payload_too_large | Over 25 MB. |
| 415 | unsupported_media_type | Not application/pdf, or the bytes are not a PDF. |
Notes
- Uploading again replaces the archived copy and its checksum.