Collect the deposit and get paid
How the deposit invoice gets minted the moment a quote is accepted, the pay-link your customer uses, and the manual fallback for wire or check.
Winning a quote does not by itself collect any money — an invoice with a deposit pay-link has to exist first. Obsidian Jet mints that invoice automatically the moment a quote is accepted, on either accept path, and gives you a manual fallback for payments that happen off-platform.
1. The deposit invoice mints automatically on accept
However the customer says yes — clicking Accept on their emailed quote link, or an operator marking the quote WON after a phone call — the same deposit-minting step fires right after the acceptance is recorded. This is a recent parity fix: the operator-driven accept used to skip it and leave the booking with no deposit artifact until someone opened Invoicing and minted one by hand.
- Customer accepts their emailed link (
public_quote_accept): the acceptance commits, then the deposit invoice mints, resolving the same deposit-terms/pct logic the quote's deposit schedule already carries. - Operator marks the quote WON (
POST /api/v1/quote/<id>/accept, the phone/in-person path): the SAME helper now fires right after the existing charter-agreement + booking-confirmation side effects, so this path mints the identical deposit invoice the public path always did — no more "operator has to remember to open Invoicing and mint it." - Both paths share one helper,
_mint_deposit_invoice_on_accept, so the deposit-terms resolution and pay-link behavior can't drift between them.
If your Stripe Connect account is not yet onboarded (or the SDK/key is
unavailable), the invoice still mints — it just has no pay-link yet. The
response carries deposit_pay_link_error instead of a URL, and the booking
itself is never blocked on it.
2. The customer's pay-link
Once the invoice has minted with a working pay-link, the customer's accept-confirmation page shows it directly — no separate email round-trip required to start paying.
- After accepting, the confirmation page shows a transparent deposit-now / balance summary next to a Pay deposit · $<amount> button.
- The link is a Stripe Checkout session created directly on the operator's connected account, itemizing the charter invoice as its own line (plus a disclosed card surcharge line item, when one applies) — never folded silently into the base price.
- If no link could be minted, the page says so honestly instead of hiding the deposit step: "Your operator will send deposit payment instructions shortly."
3. Recording an off-platform payment (wire, check, cash)
Not every deposit or balance arrives through the pay-link. When a customer wires funds or mails a check, record it manually against the invoice so the invoice's status and the pipeline's money chip both reflect reality.
- Open the invoice from Invoicing (or from the WON quote's money chip — see After the win) and find the record payment panel.
- Enter the amount, pick a method (wire, check, or another offline method your tenant supports), and optionally a reference and the date received.
- Submit. The payment posts to
POST /api/v1/charter/invoices/<invoice_id>/payments, and the invoice's status (and the WON quote's money chip) updates immediately — no wait for a webhook that will never arrive for an off-platform payment.
A manually recorded payment is exactly that — a record of what your operation received, not a claim about regulatory or contractual compliance. Keep the reference field accurate; it is what reconciles this receipt against your bank statement later.