Skip to main content
The keys of billing_items are camelCased, unlike the rest of the API. They are stored as authored in the Lago user interface, and every payload pins the catalog record the entry was built from.
lago_id
string<uuid>
required

Unique identifier of the quote version, created by Lago.

Example:

"1a901a90-1a90-1a90-1a90-1a901a901a90"

lago_quote_id
string<uuid>
required

Unique identifier of the quote the version belongs to, created by Lago.

Example:

"1a901a90-1a90-1a90-1a90-1a901a901a90"

lago_organization_id
string<uuid>
required

Unique identifier of the organization, created by Lago.

Example:

"1a901a90-1a90-1a90-1a90-1a901a901a90"

version
integer
required

The number of the version within the quote. It starts at 1 and increases by 1 for every new version created by cloning.

Example:

1

status
enum<string>
required

The status of the quote version. It can be any of the following values:

  • draft: the version is still editable.
  • approved: the version has been approved and an order form has been generated from it.
  • voided: the version is no longer actionable.

A quote has at most one version in draft or approved status at any time; all the other versions are voided.

Available options:
draft,
approved,
voided
Example:

"draft"

currency
enum<string> | null
required

The currency the version is quoted in.

Available options:
null,
AED,
AFN,
ALL,
AMD,
ANG,
AOA,
ARS,
AUD,
AWG,
AZN,
BAM,
BBD,
BDT,
BGN,
BIF,
BMD,
BND,
BOB,
BRL,
BSD,
BWP,
BYN,
BZD,
CAD,
CDF,
CHF,
CLF,
CLP,
CNY,
COP,
CRC,
CVE,
CZK,
DJF,
DKK,
DOP,
DZD,
EGP,
ETB,
EUR,
FJD,
FKP,
GBP,
GEL,
GIP,
GMD,
GNF,
GTQ,
GYD,
HKD,
HNL,
HRK,
HTG,
HUF,
IDR,
ILS,
INR,
ISK,
JMD,
JPY,
KES,
KGS,
KHR,
KMF,
KRW,
KYD,
KZT,
LAK,
LBP,
LKR,
LRD,
LSL,
MAD,
MDL,
MGA,
MKD,
MMK,
MNT,
MOP,
MRO,
MUR,
MVR,
MWK,
MXN,
MYR,
MZN,
NAD,
NGN,
NIO,
NOK,
NPR,
NZD,
PAB,
PEN,
PGK,
PHP,
PKR,
PLN,
PYG,
QAR,
RON,
RSD,
RUB,
RWF,
SAR,
SBD,
SCR,
SEK,
SGD,
SHP,
SLL,
SOS,
SRD,
STD,
SZL,
THB,
TJS,
TOP,
TRY,
TTD,
TWD,
TZS,
UAH,
UGX,
USD,
UYU,
UZS,
VND,
VUV,
WST,
XAF,
XCD,
XOF,
XPF,
YER,
ZAR,
ZMW
Example:

"USD"

billing_entity_code
string | null
required

Unique code identifying the billing entity that issues the deal. It is resolved rather than stored: the version's own entity when it names one, then the entity of the subscription being amended for a subscription_amendment quote, then the customer's own. It is null when none of them resolves. An amendment cannot name an entity itself, since the subscription it restates is already bound to one, and naming one on an amendment is rejected.

Example:

"acme_corp"

void_reason
enum<string> | null
required

The reason why the quote version was voided. It is null unless the status is voided. It can be any of the following values:

  • manual: voided explicitly, through the API or the Lago user interface.
  • superseded: voided because the version was cloned into a new draft.
  • cascade_of_expired: voided because the order form generated from the version expired.
  • cascade_of_voided: voided because the order form generated from the version was voided.
Available options:
null,
manual,
superseded,
cascade_of_expired,
cascade_of_voided
Example:

"manual"

approved_at
string<date-time> | null
required

The date and time in UTC (ISO 8601) when the version was approved. It is null unless the status is approved.

Example:

"2026-04-29T08:59:51Z"

voided_at
string<date-time> | null
required

The date and time in UTC (ISO 8601) when the version was voided. It is null unless the status is voided.

Example:

"2026-04-29T08:59:51Z"

created_at
string<date-time>
required

The date and time in UTC (ISO 8601) when the version was created.

Example:

"2026-04-29T08:59:51Z"

updated_at
string<date-time>
required

The date and time in UTC (ISO 8601) when the version was last updated.

Example:

"2026-04-29T08:59:51Z"

content
string | null
required

The HTML body of the quote document, as authored in the Lago user interface. It may reference the entries of billing_items through their localId.

Example:

"<h1>Quote QT-2026-0001</h1><p>Prepared for Acme Corp.</p>"

billing_items
object | null
required

A snapshot of everything the quote bills. Unlike the rest of the Lago API, the keys nested in this object are camelCased: the object is stored and returned as it is authored in the Lago user interface.

Which top-level keys are present depends on the order_type of the parent quote:

  • one_off: addOns.
  • subscription_creation and subscription_amendment: plans, plus the optional coupons and walletCredits.

Every entry pins the catalog record it was built from through its id and its payload, so that an approved quote keeps billing what was approved even if the catalog changes afterwards. The optional overrides object carries the deviations from that record negotiated on the quote.

This object is the single source of truth for the term of the deal. Three of its nested dates bound that term, because the execution flow refuses them once past: plans[].payload.endDate, walletCredits[].payload.expirationAt and the expirationAt of a wallet credit's recurring top-up rule. The earliest of them is the day the deal stops being executable, and both the signing window and the execution date must fall strictly before it. A one_off quote carries none of them and is never bounded.

On a draft version this object may be incomplete: only the properties documented as required below are enforced on every save, the others are enforced when the version is approved.