When orders are created
Polar creates an order in all of these cases:- One-time purchase — when a customer checks out a non-recurring product.
- Subscription created — the initial order generated when a customer subscribes.
- Subscription renewal — every billing cycle of an active subscription.
- Subscription change — when a plan or seat update is prorated with
invoicebehavior and charges the difference immediately. See Proration.
billing_reason that tells you which of these it is: purchase, subscription_create, subscription_cycle, or subscription_update.
Order status
An order moves through a small set of statuses over its lifetime:| Status | Meaning |
|---|---|
pending | The order has been created and Polar is attempting to collect payment. |
paid | The payment succeeded. |
refunded | The order has been fully refunded. |
partially_refunded | Part of the order has been refunded. See Refunds. |
void | The order will not be collected (for example, it’s been voided after repeated failures). |
paid immediately with no payment step.
What’s on an order
Every order carries:- Amounts: subtotal, discount, tax, net, and total, with the currency it was billed in.
- Billing details: customer billing name and address (editable until the invoice is generated).
- Tax details: taxability reason, tax rate, and the amount collected — useful if you’re operating as merchant of record on your own, or reconciling against Polar’s MoR tax handling.
- A link to the product and customer, and to the subscription if the order came from a subscription.
- The invoice, once it’s been generated.
- Custom field data captured at checkout.
Invoices
Polar generates a PDF invoice for every paid order. You can:- Download it from the order detail page in the dashboard.
- Trigger generation programmatically via Generate Order Invoice, then fetch the URL with Get Order Invoice.
Once an invoice has been generated, its billing details are frozen. If you
need to correct a name or address after the fact, the customer should edit
their invoice from the Customer Portal, which regenerates it.
Refunds
Orders can be refunded in full or in part from the dashboard, or programmatically via the Refunds API. Refunds are a separate resource linked to the order — see Refunds for the rules around what’s refundable and how it interacts with payouts.Webhooks
If you’re integrating orders into your own system, Polar emits an event on every state transition:order.created— a new order exists (not necessarily paid yet).order.paid— the order has been collected. This is the one most integrations care about.order.updated— something changed on the order.order.refunded— a refund was issued against the order.
Next steps
Subscriptions
The recurring relationship that generates most orders.
Refunds
How to refund an order, fully or partially.
Orders API
List and fetch orders, update billing details, and generate invoices.
Customer Portal
Where customers view their own orders and download invoices.

