---
title: "Create a proforma invoice"
method: POST
path: "/subscriptions/proformaInvoice"
tags: ["Subscriptions"]
---

# Create a proforma invoice

`POST /subscriptions/proformaInvoice`

Creates a new proforma invoice that reflects changes you want to make to a subscription.

## Request body

- object
  - `subscription` string, required — Unique identifier for the subscription.
  - `product` string, required — The product identifier.
  - `prorate` boolean, required — Indicates whether the invoice should account for proration. If you set prorate to `false`, FastSpring generates a proforma invoice that reflects changes that will take effect at the next renewal date. If you set prorate to `true`, FastSpring generates a proforma invoice that reflects changes that will take effect immediately. Note: Prorated invoices are only valid for one day, as the amount adjusts daily based on the remaining time until the next renewal.
  - `quantity` integer, required — The new quantity for the subscription.
  - `language` 'ar' | 'cs' | 'da' | 'de' | 'en' | 'es' | 'fi' | 'fr' | 'he' | 'hr' | 'it' | 'ja' | 'ko' | 'nl' | 'no' | 'pl' | 'pt' | 'ru' | 'sk' | 'sv' | 'tr' | 'zh' — The language code for the response.
  - `pricing` object
    - `price` object
      - `USD` number — The price in USD.

## Response `200`

OK

- ProformaCreateInvoiceResponse
  - `invoice` object — Details of the generated proforma invoice.
    - `id` string — The invoice ID.
    - `subscription` string — The subscription ID.
    - `product` string — The product identifier.
    - `quantity` integer — The new quantity for the subscription.
    - `total_price` object — Total price of the subscription.
      - `USD` number — Price in USD.
    - `prorated` boolean — Indicates if the invoice is prorated.
    - `language` string — Language of the proforma invoice.
    - `created_at` string, date-time — Timestamp when the invoice was created.
  - `proformaInvoiceHeader` object — Header details of the proforma invoice.
    - `currency` string — Currency in which the proforma invoice was generated.
    - `timezone` string — Timezone of the invoice generation.
    - `language` string — Language of the proforma invoice.
    - `message` string — Message regarding the validity of the invoice.
    - `logoUrl` string — URL of the store logo, if available.
    - `proFormaInvoiceCreationDate` integer — Creation date of the proforma invoice in epoch milliseconds.
    - `proFormaInvoiceCreationDateDisplay` string — Creation date of the proforma invoice in human-readable format.
    - `proFormaInvoiceCreationDateDisplayISO8601` string — Creation date of the proforma invoice in ISO 8601 format.
    - `proFormaInvoiceExpirationDate` integer — Expiration date of the proforma invoice in epoch milliseconds.
    - `proFormaInvoiceExpirationDateDisplay` string — Expiration date of the proforma invoice in human-readable format.
    - `proFormaInvoiceExpirationDateDisplayISO8601` string — Expiration date of the proforma invoice in ISO 8601 format.
  - `supportContact` object — Support contact details.
    - `name` string — Name of the support contact.
    - `email` string — Email address of the support contact.
    - `url` string — Website of the support contact.
  - `merchantContact` object — Merchant contact details.
    - `merchantName` string — Name of the merchant.
    - `merchantAddress` string — Address of the merchant.
  - `coTerm` object — Co-term data if applicable.
    - `account` string — Account associated with the co-term.
    - `coTermGroupId` string — ID of the co-term group.
  - `contact` object — Customer contact details.
    - `email` string — Customer email.
    - `firstName` string — Customer first name.
    - `phone` string — Customer phone number (optional).
    - `company` string — Customer company (optional).
    - `address` object — Customer address.
      - `accountId` string — Account ID of the customer.
      - `addressLine1` string — First line of the address.
      - `city` string — City of the address.
      - `region` string — Region or state of the address.
      - `postalCode` string — Postal code of the address.
      - `country` string — Country of the address.
  - `items` object — Details of the items in the proforma invoice.
    - `subscription` string — Unique identifier for the subscription.
    - `product` string — The product identifier code.
    - `quantity` integer — The new quantity for the subscription.
    - `price` object — Price details.
      - `USD` number — Price in USD.

## Other responses

- `400` — Bad Request
- `401` — Authentication credentials are missing or invalid.
- `404` — Subscription Not Found
- `405` — Method Not Allowed
- `429` — Rate limit exceeded. Retry after the number of seconds specified in the Retry-After header.
- `500` — Internal Server Error

---

[API](https://skmtc.net/fastspring/apis/fastspring-api-accounts.md) · [All operations](https://skmtc.net/fastspring/apis/fastspring-api-accounts/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/fastspring/fastspring-api-accounts/versions/ae2f0b97db3e/schema)
