Skip to main content
POST
Create a quote

Authorizations

Authorization
string
header
required

API key authentication. Pass your API key as a Bearer token.

Headers

Alguna-Version
enum<string>
required
Available options:
2026-04-01
Idempotency-Key
string

A unique string used to ensure the request is processed exactly once. If you retry a request with the same idempotency key within 24 hours, the original response is returned without re-executing the operation.

Maximum string length: 255
Example:

"ik_a1b2c3d4e5f6"

Body

application/json
customer_id
string
required

Customer ID. For an amendment, must be the subscription's customer.

Example:

"cust_abc123"

amends_subscription_id
string | null

Amend this active subscription. Takes exactly one entry in phases, with a start_date, and no other origin.

Example:

"sub_abc123"

auto_activate
boolean | null

Whether the subscription takes effect on its own once signed: a new-business quote activates at its contract start, an amendment applies immediately. Defaults to the plan's or organization's setting for new business, and to true for an amendment; each quote keeps its own value.

contract
object | null

Term of the subscription the quote documents. Only valid for a plan-seeded quote.

expires_at
string<date-time> | null

When the signing offer lapses. Defaults to the organization's quote expiry window.

Example:

"2026-09-30T23:59:59Z"

items
object[]

Priced items for a single-phase quote. Shorthand for one entry in phases. Prices inherit the customer's currency.

Maximum array length: 200
metadata
object

Arbitrary key/value pairs stored on the subscription.

name
string | null

Names the subscription a blank-canvas quote creates. Only valid when neither plan_id nor source_subscription_id is provided; a plan or duplicate names itself.

Example:

"Acme Platform 2026"

phases
object[]

Priced phases in schedule order: the ramp of a blank-canvas quote, or the one changed phase of an amendment. Mutually exclusive with items, plan_id and source_subscription_id.

Maximum array length: 60
plan_id
string | null

Seed the quote from a plan. The quote inherits the plan's pricing. Mutually exclusive with source_subscription_id and price_book_id.

Example:

"pln_abc123"

price_book_id
string | null

Price book a blank-canvas quote draws its pricing from. Mutually exclusive with plan_id and source_subscription_id.

Example:

"pb_abc123"

source_subscription_id
string | null

Duplicate an existing subscription into a new quote. Mutually exclusive with plan_id and price_book_id.

Example:

"sub_abc123"

Response

Success

auto_activate
boolean
required

Whether this quote takes effect on its own once signed; otherwise activate it with Activate a Signed Quote

Example:

false

contract
object
required

Term of the subscription this quote documents

created_at
string<date-time>
required

When the quote was created

Example:

"2026-08-21T10:00:00Z"

currency
string
required

ISO 4217 currency code

Example:

"USD"

customer_id
string
required

Customer ID

Example:

"cust_abc123"

id
string
required

Quote ID

Example:

"qt_abc123"

kind
enum<string>
required

Quote kind

Available options:
new,
renewal,
amendment
Example:

"new"

name
string
required

Display name of the quote: its own override when one is set, otherwise the name of the subscription it documents

Example:

"Acme Platform 2026"

status
enum<string>
required

Document status

Available options:
draft,
pending_approval,
sent,
signed,
rejected,
withdrawn,
expired
Example:

"draft"

subscription_id
string
required

The subscription this quote creates or amends. Whether the deal is in effect is that subscription's state, not the quote's: read it, or its phases, once the quote is signed.

Example:

"sub_abc123"

updated_at
string<date-time>
required

When the quote was last updated

Example:

"2026-08-21T10:00:00Z"

expires_at
string<date-time> | null

When the signing offer expires; null means it never expires

Example:

"2026-09-30T23:59:59Z"

signing_url
string | null

Hosted page where the customer reviews and signs. Present on a single quote while a customer signature is pending, so a lost link can be recovered; omitted on the list.

Example:

"https://acme.alguna.io/hs/elt_abc123"

withdrawal_reason
string | null

Reason recorded on withdrawal

Example:

"Superseded by revised terms"

withdrawn_at
string<date-time> | null

When the quote was withdrawn, if withdrawn

Example:

"2026-09-15T09:00:00Z"