← API reference
CANONICAL TYPE REFERENCE

DuplicateEstimateForCustomerInput

Copies an estimate and all its lines onto another customer, optionally re-pricing. The copy is created as a fresh DRAFT at revision 1, not linked to the source as a revision.

Estimate to copy, as an EstimateID TypeID (e.g. "est_01K…"). Must exist in the caller's tenant. The source estimate is never modified.

Customer the copy is issued to, as a CustomerID TypeID (e.g. "cus_01K…"). Required — this is the point of the macro, so it is not inherited from the source estimate.

Optional contact at the new customer, as a ContactID TypeID (e.g. "con_01K…"). NOT inherited from the source estimate: leaving it null leaves the copy without a contact.

Optional billing address for the copy, as an AddressID TypeID (e.g. "adr_01K…"). NOT inherited from the source estimate: leaving it null leaves the copy without a billing address.

Estimate number for the copy. Defaults to the source estimate's number with a "-COPY" suffix. Not checked for uniqueness here.

Percentage applied to every copied line's unit price: +10 raises prices by 10%, -5 discounts by 5%. Line totals, subtotal, tax and total are recomputed from the adjusted unit prices. Null or 0 copies prices unchanged. Existing per-line discounts are copied as-is and not re-applied.

notesString

Customer-facing notes for the copy. Defaults to the source estimate's notes when null. The copy's internal notes are always overwritten with a "Duplicated from …" provenance line.

View exact SDL
"""
Copies an estimate and all its lines onto another customer, optionally re-pricing. The copy is created as a fresh DRAFT at revision 1, not linked to the source as a revision.
"""
input DuplicateEstimateForCustomerInput {
  """
  Estimate to copy, as an EstimateID TypeID (e.g. "est_01K…"). Must exist in the caller's tenant. The source estimate is never modified.
  """
  estimateId: EstimateID!
  """
  Customer the copy is issued to, as a CustomerID TypeID (e.g. "cus_01K…"). Required — this is the point of the macro, so it is not inherited from the source estimate.
  """
  customerId: CustomerID!
  """
  Optional contact at the new customer, as a ContactID TypeID (e.g. "con_01K…"). NOT inherited from the source estimate: leaving it null leaves the copy without a contact.
  """
  contactId: ContactID
  """
  Optional billing address for the copy, as an AddressID TypeID (e.g. "adr_01K…"). NOT inherited from the source estimate: leaving it null leaves the copy without a billing address.
  """
  billingAddressId: AddressID
  """
  Estimate number for the copy. Defaults to the source estimate's number with a "-COPY" suffix. Not checked for uniqueness here.
  """
  estimateNumber: String
  """
  Percentage applied to every copied line's unit price: +10 raises prices by 10%, -5 discounts by 5%. Line totals, subtotal, tax and total are recomputed from the adjusted unit prices. Null or 0 copies prices unchanged. Existing per-line discounts are copied as-is and not re-applied.
  """
  adjustPricePercent: Float
  """
  Customer-facing notes for the copy. Defaults to the source estimate's notes when null. The copy's internal notes are always overwritten with a "Duplicated from …" provenance line.
  """
  notes: String
}

One stable address across all schema views. Follow a field’s type to explore connections between domains.