> For the complete documentation index, see [llms.txt](https://orbit-b2b.gitbook.io/orbit-b2b-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://orbit-b2b.gitbook.io/orbit-b2b-docs/quotes-rfq/payment-terms.md).

# Payment terms — Net 30 / PDF invoice

Payment terms decide **what happens after the buyer clicks Accept**. The dropdown is in the Order adjustments section of every quote.

## Two flows, picked automatically

| Payment terms                                      | After Accept                                                                                                                                                                                                            |
| -------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Due on receipt** (default)                       | Buyer is redirected straight to a Shopify checkout invoice and pays now (card / PayPal / your manual payment methods)                                                                                                   |
| **Net 15 / Net 30 / Net 60 / Prepay 50% / Custom** | The app generates a PDF invoice, emails it to the buyer with payment instructions, and skips the immediate checkout. Buyer pays offline (bank transfer / wire / check). You mark the order paid when the money arrives. |

Both flows always create a Shopify draft order tagged with the Quote # — that's how you trace the transaction in Shopify Orders.

## Why this design (and why it works on Basic / Shopify / Advanced)

True payment terms via Shopify's `paymentTermsTemplate` are a B2B feature locked to Shopify Plus. To give Net 30 to merchants on every plan, we skip that API and do this instead:

1. Stamp the draft order with `Payment terms: Net 30` (visible in Shopify Order detail as a custom attribute and metafield)
2. Generate a PDF invoice with line items + your bank instructions
3. Email the invoice to the buyer
4. Don't expose the Shopify checkout URL — buyer pays offline
5. You mark the order paid manually when the money lands

This works the same on Basic / Shopify / Advanced / Plus. No paywall.

## The PDF invoice email

When a buyer accepts a Net X quote, the app sends them the **Quote Invoice (Net terms)** email with the PDF attached. The template is fully editable under **Email Templates → Quote**.

The PDF includes:

* Your store name + URL in the header
* INVOICE label + Quote # + date + valid-until date
* Bill To block with the buyer's name and email
* Line items table (product, qty, unit price, line total)
* Subtotal, discount, shipping, **Total**
* A highlighted **Payment terms** callout (e.g. `Net 30 — pay within 30 days`)
* The custom note you entered in the Custom payment terms field, if any
* Footer with your store name

## Marking the order paid (your side)

When the buyer's bank transfer lands:

1. Open **Shopify admin → Orders**
2. Search by the Quote # tag, or filter Financial status = Pending
3. Open the order, click **More actions → Mark as paid**
4. Pick the manual payment method that matches how you received the money (Bank transfer, Cash, etc.)
5. Shopify fires the `orders/paid` webhook
6. The app links the order back to the quote — you can now see the linked order ID on the quote in your Quotes inbox

## Setting up Manual Payment Methods (one-time, recommended)

So your team has clean payment method labels to pick from when marking paid:

1. Shopify admin → **Settings → Payments**
2. Scroll to **Manual payment methods** → **Add manual payment method**
3. Create one for **Bank transfer** (include your bank details in the payment instructions field) and one for **Wire transfer** if international
4. Save

These will appear in the dropdown when you click Mark as paid.

## When to use which payment term

| Term               | Common use case                                                  |
| ------------------ | ---------------------------------------------------------------- |
| **Due on receipt** | New buyers, smaller orders, or anyone you don't extend credit to |
| **Net 15**         | Trusted regular buyers, short cycle                              |
| **Net 30**         | Standard B2B credit, larger orders, established relationships    |
| **Net 60**         | Enterprise accounts with long payment cycles                     |
| **Prepay 50%**     | Custom orders, large quantities, or to share cash-flow risk      |
| **Custom**         | Anything else — partial payments, milestones, deposit + balance  |

## Coming soon

In a future update, payment terms will cascade from your Customer Groups so Gold-tier customers automatically get Net 30, Silver gets Net 15, etc. — and you won't have to pick it manually every time. For now, you set it per quote.

## Next steps

* [Email templates you can customize](/orbit-b2b-docs/quotes-rfq/emails.md)
* [Auto-expiry and reminders](/orbit-b2b-docs/quotes-rfq/reply-flow.md#status-transitions)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://orbit-b2b.gitbook.io/orbit-b2b-docs/quotes-rfq/payment-terms.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
