Appearance
UpsertEstimateInput
Type: Input
Input for creating or updating an estimate
Fields
| Name | Type | Default | Description |
|---|---|---|---|
| acceptedAt | ISO8601 | Acceptance timestamp (ISO8601) | |
| billingAddressId | AddressID | Billing address ID | |
| contactId | ContactID | Associated contact ID | |
| convertedToOrderId | OrderID | Order ID if converted | |
| createdAt | ISO8601 | Override creation timestamp (ISO8601). Honored only on create — passing on update is rejected. | |
| createdByUserId | UserID | User who created this estimate | |
| currency | CurrencyISO! | Currency code (required) | |
| customerId | CustomerID! | Associated customer ID (required) | |
| estimateNumber | String! | Estimate reference number (required) | |
| externalId | String | External system reference | |
| id | EstimateID | ID for update; omit for create | |
| internalNotes | String | Internal notes | |
| issueDate | ISO8601! | Issue date (ISO8601, required) | |
| notes | String | Customer-facing notes | |
| parentEstimateId | EstimateID | Parent estimate ID for revisions | |
| rejectedAt | ISO8601 | Rejection timestamp (ISO8601) | |
| revisionNumber | Int | Revision number (defaults to 1) | |
| status | EstimateStatus | Estimate status (defaults to draft) | |
| subtotalAmount | Float! | Subtotal before tax (required) | |
| tags | [String!] | Tags for categorization | |
| taxAmount | Float! | Tax amount (required) | |
| taxRate | Float | Tax rate percentage | |
| totalAmount | Float! | Total amount including tax (required) | |
| updatedAt | ISO8601 | Override update timestamp (ISO8601). Honored on create or update; defaults to now. | |
| validUntil | ISO8601 | Valid until date (ISO8601) |