Skip to main content
POST
/
v1
/
quotes
Create quote
curl --request POST \
  --url https://api.hyperline.co/v1/quotes \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: multipart/form-data' \
  --form customer_id=cus_QalW2vTAdkR6IY \
  --form template_id=quot_9hNWq4c84Z146W \
  --form status=draft \
  --form owner_email=joe@acme.com \
  --form invoicing_entity_id=ive_47484fjdhy5 \
  --form 'comments=Please find the contract and subscription details we discussed.' \
  --form 'terms=By signing this quote, you accept our conditions of use for the use of our products and services.' \
  --form amount=20000 \
  --form collect_payment_details=true \
  --form display_quote_value=true \
  --form display_taxes=true \
  --form display_price_tiers=true \
  --form display_phase_value=false \
  --form display_first_invoice_amount=false \
  --form display_documents_in_preview=false \
  --form display_subscription_on_update=false \
  --form automatically_start_subscription=true \
  --form expires_at=2024-04-28T14:12:09.293Z \
  --form 'subscription={
  "phases": [
    {
      "end_strategy": "duration",
      "billing_date_setting": "phase_start",
      "products": [
        {
          "id": "itm_FJKlqUb8COXw55",
          "name": "Product name",
          "description": "A description of the product.",
          "description_display_interval_dates": false,
          "payment_interval": {
            "period": "once"
          },
          "payment_schedule": "start",
          "price": {
            "type": "fee",
            "amount": 200
          },
          "prices": [
            {
              "type": "volume",
              "from": 0,
              "to": 20,
              "amount": 200,
              "unit_count": 1,
              "on_tier_incomplete": null
            },
            {
              "type": "volume",
              "from": 20,
              "to": null,
              "amount": 150,
              "unit_count": 1,
              "on_tier_incomplete": null
            }
          ],
          "count": 2,
          "unit_name": "user",
          "min_committed_count": 2,
          "min_amount": 123,
          "max_amount": 123,
          "metering_interval_type": "subscription_commitment",
          "metering_interval": {
            "period": "days",
            "count": 2
          },
          "bill_usage_difference": false,
          "credits_expiration_in_days": 123,
          "expire_credits_at_end_of_period": false
        }
      ],
      "activation_strategy": "manual",
      "name": "Name of the subscription phase.",
      "type": "standard",
      "status": "pending",
      "order": 0,
      "duration": {
        "count": 1,
        "period": "years"
      },
      "initial_billing_at": "2024-12-20T16:04:11Z",
      "starts_at": "2024-12-20T16:04:11Z",
      "ends_at": "2024-12-20T16:04:11Z",
      "billing_cycle_alignment": "anniversary",
      "do_not_invoice_phase": false,
      "transition_calculation_method": "prorata",
      "transition_invoicing_schedule": "immediately",
      "coupons": [
        {
          "id": "<string>",
          "repeat": "once",
          "duration_period": "days",
          "duration_count": 123,
          "expires_at": "2024-12-20T16:04:11Z",
          "apply_at": "2024-12-20T16:04:11Z",
          "product_ids": [
            "<string>"
          ]
        }
      ]
    }
  ],
  "name": "<string>",
  "purchase_order": "<string>",
  "invoicing_entity_id": "ive_jerrb484RHn",
  "crm_opportunity_id": "<string>",
  "commitment_interval": {
    "period": "years",
    "count": 1
  },
  "renew_automatically": true,
  "renew_for": {
    "period": "years",
    "count": 1
  },
  "minimum_invoice_fee": 250,
  "contract_terms": {
    "activation_strategy": "start_date",
    "end_strategy": "duration",
    "starts_at": "2024-12-20T16:04:11Z",
    "ends_at": "2024-12-20T16:04:11Z",
    "duration": {
      "count": 6,
      "period": "months"
    },
    "renew_automatically": true,
    "renew_for_duration": {
      "count": 1,
      "period": "years"
    }
  },
  "starts_at": "2024-12-20T16:04:11Z",
  "contract_start": "2024-01-15T00:00:00Z",
  "contract_end": "2025-01-15T00:00:00Z",
  "initial_billing_at": "2024-12-20T16:04:11Z",
  "display_shipping_details": true,
  "cancel_at": "2024-12-20T16:04:11Z",
  "cancellation_strategy": "refund_prorata",
  "cancellation_amount": 123,
  "properties": {},
  "custom_properties": {},
  "tax_only": true,
  "generate_draft_invoices": true,
  "generate_document": true,
  "document_name": "<string>",
  "add_tax_to_document": true,
  "do_not_charge_subscription": true,
  "invoice_custom_note": "<string>"
}'
{
  "id": "quo_hXQCd5y8P3GYXa",
  "customer_id": "cus_QalW2vTAdkR6IY",
  "invoicing_entity_id": "ive_47484fjdhy5",
  "template_id": "quot_9hNWq4c84Z146W",
  "crm_opportunity_id": null,
  "number": "327",
  "comments": "Please find the contract and subscription details we discussed.",
  "terms": "By signing this quote, you accept our conditions of use for the use of our products and services.",
  "owner_email": "joe@acme.com",
  "collect_payment_details": true,
  "collect_custom_property_ids": [],
  "display_quote_value": true,
  "display_taxes": true,
  "display_price_tiers": true,
  "display_phase_value": false,
  "display_first_invoice_amount": false,
  "display_documents_in_preview": false,
  "display_subscription_on_update": false,
  "attachments": [
    {
      "id": "quof_5GYXy8P3QCdaXh",
      "name": "General Conditions of Sale",
      "mimetype": "application/pdf"
    }
  ],
  "signed_file": null,
  "url": "https://billing.hyperline.co/quote/quo_hXQCd5y8P3GYXa",
  "created_at": "2024-04-23T09:10:00.220Z",
  "updated_at": "2024-04-23T10:22:08.100Z",
  "status": "draft",
  "amount": 200000,
  "expires_at": null,
  "type": "subscription",
  "subscription_id": "sub_B6ClkdqNqVNBgY",
  "child_subscription_ids": [
    "sub_0z39oqdhKl0PXb"
  ]
}

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Body

multipart/form-data
customer_id
string
required

ID of the customer.

Example:

"cus_QalW2vTAdkR6IY"

template_id
string
required

ID of the quote template. If not specified, a subscription configuration must be defined.

Example:

"quot_9hNWq4c84Z146W"

status
enum<string>

Quote status.

  • draft: The quote is a draft.
  • approved: The quote is approved and ready to be sent to the customer.
  • pending_signature: The quote is awaiting the customer's signature.
Available options:
draft,
approved,
pending_signature
Example:

"draft"

owner_email
string<email>

Email address of the Hyperline user acting as the quote owner. If not specified, the Hyperline account owner will be assigned.

Example:

"joe@acme.com"

invoicing_entity_id
string

ID of the invoicing entity attached to the quote.

Example:

"ive_47484fjdhy5"

comments
string

Custom comments displayed on the quote.

Example:

"Please find the contract and subscription details we discussed."

terms
string

Custom quotation terms.

Example:

"By signing this quote, you accept our conditions of use for the use of our products and services."

amount
number | null

Estimated contract value. If not specified, automatically computed from the subscription configuration.

Example:

20000

collect_payment_details

Collect customer payment method mandate during signature flow or not.

Example:

true

collect_custom_property_ids
string[]

IDs of the customer custom properties required to be filled during the signature flow.

Example:
[]
display_quote_value

Display the total quote value on the quote.

Example:

true

display_taxes

Display tax breakdown on the quote.

Example:

true

display_price_tiers

Display pricing tier details on the quote.

Example:

true

display_phase_value

Display per-phase value breakdown on the quote.

Example:

false

display_first_invoice_amount

Display the first invoice amount on the quote.

Example:

false

display_documents_in_preview

Display attached documents in the quote preview.

Example:

false

display_subscription_on_update

Display subscription details on subscription update quotes.

Example:

false

automatically_start_subscription
deprecated

Deprecated field, please use the phase activation strategy quote_signature instead.

Example:

true

expires_at
string<date-time>

Quote expiration date. UTC date time string in the ISO 8601 format.

Example:

"2024-04-28T14:12:09.293Z"

subscription
With phases · object

Subscription configuration constituting the quote.

Response

201 - application/json
id
string
required

Quote ID.

Example:

"quo_hXQCd5y8P3GYXa"

customer_id
string
required

ID of the customer.

Example:

"cus_QalW2vTAdkR6IY"

invoicing_entity_id
string
required

ID of the invoicing entity attached to the quote.

Example:

"ive_47484fjdhy5"

template_id
string | null
required

ID of the quote template.

Example:

"quot_9hNWq4c84Z146W"

crm_opportunity_id
string | null
required

ID of the related opportunity/deal in the connected CRM.

Example:

null

number
string
required

Quote sequential number.

Example:

"327"

comments
string | null
required

Custom comments displayed on the quote.

Example:

"Please find the contract and subscription details we discussed."

terms
string | null
required

Custom quotation terms.

Example:

"By signing this quote, you accept our conditions of use for the use of our products and services."

owner_email
string<email> | null
required

Email address of the Hyperline user acting as the quote owner.

Example:

"joe@acme.com"

collect_payment_details
boolean
required

Collect customer payment method mandate during signature flow or not.

Example:

true

collect_custom_property_ids
string[]
required

IDs of the customer custom properties required to be filled during the signature flow.

Example:
[]
display_quote_value
boolean
required

Display the total quote value on the quote.

Example:

true

display_taxes
boolean
required

Display tax breakdown on the quote.

Example:

true

display_price_tiers
boolean
required

Display pricing tier details on the quote.

Example:

true

display_phase_value
boolean
required

Display per-phase value breakdown on the quote.

Example:

false

display_first_invoice_amount
boolean
required

Display the first invoice amount on the quote.

Example:

false

display_documents_in_preview
boolean
required

Display attached documents in the quote preview.

Example:

false

display_subscription_on_update
boolean
required

Display subscription details on subscription update quotes.

Example:

false

attachments
object[]
required

List of documents attached to the quote.

Example:
[
{
"id": "quof_5GYXy8P3QCdaXh",
"name": "General Conditions of Sale",
"mimetype": "application/pdf"
}
]
signed_file
object
required

Final signed quote (manually uploaded).

Example:

null

url
string<uri> | null
required

URL to access the quote publicly. Only applies to the pending_signature or signed quote.

Example:

"https://billing.hyperline.co/quote/quo_hXQCd5y8P3GYXa"

created_at
string<date-time>
required

Quote creation date. UTC date time string in the ISO 8601 format.

Example:

"2024-04-23T09:10:00.220Z"

updated_at
string<date-time>
required

Quote update date. UTC date time string in the ISO 8601 format.

Example:

"2024-04-23T10:22:08.100Z"

status
enum<string>
required

Quote status.

  • draft: The quote is a draft.
  • pending_approval: The quote is pending manager review and approval.
  • changes_requested: Some changes have been requested following manager review.
  • approved: The quote is approved and ready to be sent to the customer.
  • pending_signature: The quote is awaiting the customer's signature.
  • signed: The quote is signed and fully finalized.
  • voided: The quote is voided.
Available options:
draft
Example:

"draft"

amount
number | null
required

Estimated contract value.

Example:

200000

expires_at
string<date-time> | null
required

Quote expiration date. UTC date time string in the ISO 8601 format.

Example:

null

type
enum<string>
required

Quote type.

  • subscription: The quote will create and start a new subscription.
  • subscription_update: The quote will update an existing subscription.
  • one_off: The quote will issue an one-off invoice.
Available options:
subscription,
subscription_update
Example:

"subscription"

subscription_id
string | null
required

ID of the subscription attached to the quote. It corresponds to the state at the time of the quote signature. Only applies to the subscription and subscription_update quote types. The get subscription endpoint (GET /v2/subscriptions/{id}) can be used to retrieve the related details.

Example:

"sub_B6ClkdqNqVNBgY"

child_subscription_ids
string[]
required

IDs of the created subscriptions from the quote. Subscriptions configuration can change after the quote signature. The get subscription endpoint (GET /v2/subscriptions/{id}) can be used to retrieve the related details.

Example:
["sub_0z39oqdhKl0PXb"]