{
"lago_id": "1a901a90-1a90-1a90-1a90-1a901a901a90",
"number": "OF-2026-0001",
"status": "generated",
"void_reason": "manual",
"expires_at": "2026-06-30T23:59:59Z",
"signed_at": "2026-04-29T08:59:51Z",
"voided_at": "2026-04-29T08:59:51Z",
"signed_document_url": "https://api.getlago.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMi/OF-2026-0001",
"lago_organization_id": "1a901a90-1a90-1a90-1a90-1a901a901a90",
"lago_customer_id": "1a901a90-1a90-1a90-1a90-1a901a901a90",
"lago_quote_id": "1a901a90-1a90-1a90-1a90-1a901a901a90",
"lago_quote_version_id": "1a901a90-1a90-1a90-1a90-1a901a901a90",
"created_at": "2026-04-29T08:59:51Z",
"updated_at": "2026-04-29T08:59:51Z"
}The order form object
This object represents an order form, the document the customer signs. It is generated when a quote version is approved, inherits everything from it, and cannot be edited.
The status of the order form. It can be any of the following values:
generated: the order form is waiting for the customer's signature.signed: the customer has signed, and an order has been created from the order form.expired: the order form reached itsexpires_atwithout being signed.voided: the order form has been voided before being signed.
Only a generated order form is actionable. Reaching expired or voided also voids the quote version the order form was generated from; signing does not, since the deal it quotes goes on to be executed.
generated, signed, expired, voided "generated"
The reason why the order form is no longer actionable. It is null unless the status is voided or expired. It can be any of the following values:
manual: the order form has been voided explicitly, through the API or the Lago user interface.expired: the order form reached itsexpires_atwithout being signed.invalid: reserved for an order form Lago voids because it can no longer be executed. No flow writes it yet.
null, manual, expired, invalid "manual"
The date and time in UTC (ISO 8601) after which the order form is meant to expire. It is null when the order form never expires. It is validated when the quote is approved, where a value on or after the day the quoted deal stops being executable is rejected rather than clamped. Expiry is then swept hourly and compared by calendar date, so signing keeps succeeding until the sweep moves the order form to expired.
"2026-06-30T23:59:59Z"