Settings → Payments is admin only. A member who opens it sees “Only workspace admins can set up payments.” and nothing else.
Stripe is the ledger
Quotes, invoices and subscriptions bill through your own Stripe account, connected to Custral. Stripe owns the subscriptions, invoices, invoice numbers, charging and the card and bank details. Custral reads them back live from Stripe, so the numbers you see in Custral match what Stripe shows. Card and bank details are only ever typed on Stripe’s hosted page, never into Custral. This is separate from Settings → Billing, which is what your workspace pays Custral.The setup checklist
1
Products
What you sell. Quotes pick their line items from this object. Choose Use an object I have and pick it, or Create a Products object. See Products below.
2
Customers
Who pays. Each Stripe customer links to a record here, and invoices land on it. Use an object you have (a Companies object, say) and pick its Billing email field, or Create a Customers object, which gets Email and Stripe ID fields.
3
Connect Stripe
Sign in to the Stripe account that should bill your customers, and you come back to Settings → Payments when it’s done. Your products push to Stripe as soon as you connect, and anything you already bill in Stripe keeps working. Custral then keeps two tables synced from Stripe: Stripe Invoices and Stripe Subscriptions.
4
Payment defaults
What a new quote starts with. Every quote can change them. See Payment defaults.
Who pays
Once Customers is set, the Who pays section says how billing is shaped around it. It saves from the bar at the bottom of the screen.Billing contact
Pick an email field on the paying object as the billing contact, or choose Add a “Billing email” field. New quotes go to this address by default, from the app, from Stella and from the API, and Stripe sends the customer’s invoices and receipts there. On the customer’s Billing panel, Change picks one of their people or takes an address; Stripe’s customer email follows.The billing contact is an email field rather than a link to a person. A link to People can’t hold just one person: every link from a company to its people would show in it.
Quotes from other objects
Quotes can also start from another object that links to the customers object, such as Deals. Pick the object and its field that links to the customer (a Deals “Company” field). A quote made on a deal bills that deal’s company, so a company with three deals still has one card on file, one invoice history and one MRR. If each deal really is its own billing account, make Deals the customers object instead, and pick the deal’s company field as its parent. The company then adds up its deals’ billing fields.Billing fields
Billing facts can appear as fields on the paying object, the objects quotes start from, and the parent. Tick the ones you want for each:
Custral keeps these up to date from Stripe and your contracts: when Stripe reports a change, when a contract is recorded or cancelled, and once a day. Nobody edits them by hand, admins included, and they show a lock. Use them in views, filters, dashboards and workflows (“card expires before December”, “deals whose subscription went past due”). Unticking a field hides it and keeps any view that uses it working. A money field shows one currency; a customer billed in two shows the larger.
Invoices, linked
The synced Stripe Invoices table links each invoice to the customer it bills and, when it came from a deal’s quote, to the deal, and names the quote. Invoices then show on the company’s and the deal’s pages and can be filtered by customer. They link as they sync.Products
The Products object is your catalog. Each product record carries:
Create a Products object adds all of these fields. If you pick an object you already have, Custral matches its fields by key or name (for example a field called “Unit price” or “List price” maps to Price, and “Billing period” maps to Interval). Once saved, the step lists what it mapped, for example “Using Products · Name, Price, Currency mapped · 7 products”. A field that wasn’t picked up can be renamed to match.
A quote line starts at the catalog price, and a rep can change the price for one deal. A custom price is sent to Stripe for that deal only and never changes the catalog.
Usage products
A product with a Usage event becomes a metered price in Stripe. Usage events your product records against a customer are forwarded to Stripe, and Stripe bills them per unit each month. Each usage event is sent once, so a retry never bills it twice. Usage for a customer who has no Stripe customer yet (they haven’t accepted a quote) isn’t billed, and the Receivables tab counts it.Payment defaults
The accepted methods are what Stripe’s page offers a customer who accepts an autopay quote.
Developer API
For billing from your own product, the screen also has a Developer API section:- Customer key: the field on your Customers object that holds your app’s own customer id, so the API can name a customer by it.
- Allowed return domains: the hosts a hosted quote may send the customer back to after accepting, comma-separated (for example
app.example.com). A quote created with a return URL on any other host is refused. - API keys: Open API keys to create a key with the
quotes:writeandbilling:readscopes.