Payments
The payments namespace is Autessa Payments from the command line. Check where setup stands, set up sales tax, keep your customer list, create and send invoices, schedule recurring billing, and manage the plans and subscriptions your apps sell. Verifying your business and linking a bank stay in the web app, because they need you in a browser.
Key concepts
One flat list of commands
Every command is autessa payments <command>, for example autessa payments list-invoices or autessa payments send-invoice. Run autessa payments help for the full list and autessa payments <command> help for a command's arguments and response.
autessa payments create-invoice help
Money is in cents (unitAmountCents: 9500 is $95.00), dates are yyyy-MM-dd, and IDs are opaque strings.
Same account, same rules as the web app
Every command acts on your company's Autessa Payments account, as you. You need the Payments permission, the same as for the Payments page. What you create here shows up in the web app immediately, and the other way around. See Set Up Autessa Payments for how the product works.
Sending needs verification
You can create customers, drafts, templates, recurring invoices, and plans as soon as your account is open. Sending an invoice, and auto-sending recurring invoices, needs your business to be verified first. autessa payments get-setup-status shows what's missing: check chargesEnabled and requirementsDue.
Long payloads go in a file
Invoices, recurring invoices, and plans take nested line items and addresses. Put the body in a JSON file and pass it with --json @file.json instead of fighting shell quoting.
Updates replace every field
update-customer, update-invoice, update-invoice-template, update-recurring-invoice, and update-plan replace the whole record. Read it first with the matching get- command and send every field back, or the fields you leave out are cleared. update-branding is the exception: fields you leave out keep their value.
What stays in the web app
Verifying your business, linking or removing a payout bank account, choosing the default bank, and Apple Pay or Google Pay domains need a browser. Those commands print where to go instead of running. list-bank-accounts shows what's linked.
Some destructive commands are only available in the web app. void-invoice, record-invoice-payment, cancel-subscription, archive-customer, archive-plan, delete-invoice-template, end-recurring-invoice, and set-payout-schedule are listed in help but refused from the CLI and scripts by default. Do them on the Payments page. For the everyday cancel, use cancel-subscription-at-period-end.
How to set up Payments
autessa payments get-setup-status
Returns your setup checklist: each step with its state (DONE, CURRENT, TODO, or WAITING), what verification still needs in plain words, your tax setup, and invoice counts. It works before your account exists. Once it exists, it also returns your connectorId, which the account, tax, and branding commands take.
If you have no account yet, open one:
autessa payments start-setup --businessName "Acme Plumbing LLC" --country US
businessName and country default to your company's details. The country is where your business is registered and can't be changed later. start-setup is safe to run again: it returns the existing account. The response includes a finishUrl: open it to verify your business and link a payout bank account in the web app. Then re-read verification:
autessa payments get-setup-status --refresh true
To change the business name, address, or support contact later, use update-business-profile.
How to set up sales tax
Ask for a suggestion based on what you sell:
autessa payments get-tax-suggestion --category SERVICES
autessa payments get-tax-suggestion --description "online yoga classes"
Categories are PHYSICAL_GOODS, DIGITAL_PRODUCTS, SAAS_BUSINESS, SAAS_PERSONAL, SERVICES, and NONTAXABLE. Pass --description instead to have one guessed. The response lists where to collect tax now, where to watch as your sales grow, notes, and a reminder that this is general information, not tax advice.
Save your category and the places where you're registered:
autessa payments complete-tax-setup --json @tax.json
{
"connectorId": "V1StGXR8Z5",
"category": "SERVICES",
"collectsTax": true,
"registerRegions": [{ "country": "US", "state": "WA" }]
}
Add or review places one at a time, and see what you collected:
autessa payments create-tax-registration --connectorId V1StGXR8Z5 --country US --state CA
autessa payments list-tax-registrations --connectorId V1StGXR8Z5 --output table
autessa payments get-tax-summary --period 202610 --output table
Adding a place doesn't register you with the tax agency. Register there first. See Sales Tax.
How to manage customers
autessa payments list-customers --query jane --output table
autessa payments search-customers --query jane@example.com
autessa payments get-customer --customerId 3f6c2a9e-8d41-4b7a-9f0e-2c5d7b1a4e88
autessa payments create-customer \
--name "Jane Rivera" \
--email jane@example.com \
--address '{"line1":"500 Pine St","city":"Seattle","state":"WA","postalCode":"98101","country":"US"}'
autessa payments update-customer --customerId 3f6c2a9e-8d41-4b7a-9f0e-2c5d7b1a4e88 \
--name "Jane Rivera" --email jane@example.com --phone "+1 206 555 0100"
search-customers returns up to 10 matches for quick lookups. get-customer includes the latest invoices and subscriptions. update-customer replaces the customer's details, so pass every field you want to keep. Customers are also created automatically when you send an invoice to a new email or someone subscribes in one of your apps. Each email belongs to one customer.
How to send an invoice in three commands
-
Write the draft:
draft.json{"customerId": "3f6c2a9e-8d41-4b7a-9f0e-2c5d7b1a4e88","lineItems": [{ "description": "Website redesign, March", "quantity": 1, "unitAmountCents": 125000 }],"dueDays": 14,"memo": "Thanks for your business!","remindersEnabled": true}Instead of
customerId, you can passrecipientName,recipientEmail, andaddress; the customer is created for you. An address makes the sales tax exact. -
Create it and note the
idin the response:autessa payments create-invoice --json @draft.json -
Send it:
autessa payments send-invoice --invoiceId 9b2e4f71-0c3d-4a8e-b6f5-1d7a3c9e2b40
Your customer gets the email with the PDF and the pay link. dueDays counts from the day you send. To save and send in one call, add "send": true to the draft. preview-invoice takes the same fields and returns the subtotal, tax, and total without saving.
Then follow up:
autessa payments list-invoices --statuses '["SENT","VIEWED"]' --output table
autessa payments get-invoice --invoiceId 9b2e4f71-0c3d-4a8e-b6f5-1d7a3c9e2b40
autessa payments resend-invoice --invoiceId 9b2e4f71-0c3d-4a8e-b6f5-1d7a3c9e2b40
autessa payments get-invoice-link --invoiceId 9b2e4f71-0c3d-4a8e-b6f5-1d7a3c9e2b40
autessa payments set-invoice-reminders --invoiceId 9b2e4f71-0c3d-4a8e-b6f5-1d7a3c9e2b40 --enabled false
update-invoice changes a draft (same body as create-invoice, plus invoiceId). get-invoice-link returns the link to send by text or chat. Automatic reminders go out 3 days before the due date, on it, and 7 days after; set-invoice-reminders --enabled false stops them. void-invoice and record-invoice-payment exist but are refused by default; see What stays in the web app.
How to reuse invoices with templates and recurring billing
Templates hold lines, default terms, a note, and a usual customer:
autessa payments create-invoice-template --json '{"name":"Monthly retainer","lineItems":[{"description":"Retainer","quantity":1,"unitAmountCents":200000}],"dueDays":15}'
autessa payments create-invoice-template --fromInvoiceId 9b2e4f71-0c3d-4a8e-b6f5-1d7a3c9e2b40 --name "Website work"
autessa payments list-invoice-templates --output table
To invoice from a template, pass its lineItems to create-invoice along with templateId. get-invoice-template and update-invoice-template work the same way as for invoices.
Recurring invoices bill a customer on a schedule:
{
"name": "Jane's retainer",
"customerId": "3f6c2a9e-8d41-4b7a-9f0e-2c5d7b1a4e88",
"templateId": "c81d4e2a-5b6f-4c3d-9e8f-7a1b2c3d4e5f",
"lineItems": [
{ "description": "Retainer", "quantity": 1, "unitAmountCents": 200000 }
],
"intervalUnit": "MONTH",
"intervalCount": 1,
"startDate": "2026-11-01",
"maxCount": 12,
"dueDays": 15,
"autoSend": true
}
autessa payments preview-recurring-invoice --startDate 2026-11-01 --intervalUnit MONTH --intervalCount 1 --maxCount 12
autessa payments create-recurring-invoice --json @retainer.json
autessa payments list-recurring-invoices --output table
autessa payments pause-recurring-invoice --scheduleId 5e7a9c1b-2d3f-4e5a-8b6c-9d0e1f2a3b4c
autessa payments resume-recurring-invoice --scheduleId 5e7a9c1b-2d3f-4e5a-8b6c-9d0e1f2a3b4c
intervalUnit is WEEK, MONTH, or YEAR. Set either endDate or maxCount, or neither for a schedule that never ends. autoSend defaults to true; set it to false to get drafts you review first. preview-recurring-invoice returns the next invoice dates and when the schedule ends, so you can check it before saving. Pausing and resuming don't create catch-up invoices, and lastError explains a run that failed. get-recurring-invoice and update-recurring-invoice work as for invoices.
How to sell plans and manage subscriptions
Plans are what your apps sell:
autessa payments create-plan --json '{"name":"Pro","amountCents":1900,"interval":"MONTH","intervalCount":1,"trialDays":14,"features":["Unlimited reports","Priority support"]}'
autessa payments list-plans --output table
autessa payments get-plan --planId 2a4c6e8f-1b3d-4f5a-9c7e-0d2b4f6a8c1e
autessa payments update-plan --json @pro-plan.json # the full plan, with planId and the new amountCents
interval is DAY, WEEK, MONTH, or YEAR. Leave out appId to offer the plan in every app, or set it to one app's ID. Changing the price keeps current subscribers on their old price.
Subscriptions:
autessa payments list-subscriptions --statuses '["ACTIVE","TRIALING","PAST_DUE"]' --output table
autessa payments get-subscription --subscriptionId 8d0f2b4c-6e8a-4c1e-a3b5-7d9f1b3d5e7a
autessa payments cancel-subscription-at-period-end --subscriptionId 8d0f2b4c-6e8a-4c1e-a3b5-7d9f1b3d5e7a
autessa payments resume-subscription --subscriptionId 8d0f2b4c-6e8a-4c1e-a3b5-7d9f1b3d5e7a
autessa payments send-subscription-link --customerId 3f6c2a9e-8d41-4b7a-9f0e-2c5d7b1a4e88 --planId 2a4c6e8f-1b3d-4f5a-9c7e-0d2b4f6a8c1e --email true
cancel-subscription-at-period-end keeps access until the end of the paid period; resume-subscription undoes it before then. send-subscription-link returns a checkout link and, with --email true, emails it to the customer. Subscriptions bill themselves: their invoices show managedBySubscription: true and can't be sent, voided, or edited.
To let people subscribe inside an app, turn on Payments for the app in its Settings → Permissions. Subscribers need to sign in, so use Visitor accounts or Personal access links hosting. See Billing inside your apps.
How to set your branding
autessa payments update-branding --connectorId V1StGXR8Z5 \
--localFile logo.png \
--accentColor "#4F46E5" \
--invoiceFooter "Payment due within 15 days. Thank you!"
--localFile uploads the logo (PNG, JPG, or WEBP under 1 MB) and saves it in one step. Fields you leave out keep their value, and an empty value clears one (--logoKey "" removes the logo). The accent color must be dark enough for white text. Branding shows on invoices, the pay page, and customer emails.
From scripts
Every command here is also available in AutessaScript as autessa.payments.*, with the command name in camelCase, for example autessa.payments.listInvoices({ statuses: ["SENT"] }). Scripts run as the user who runs them. Scoped API keys can't call Payments. See AutessaScript.
Full command reference
| Command | What it does |
|---|---|
| autessa payments add-bank-account | Web appPayout bank accounts are linked from your Autessa Payments settings in the web app. |
| autessa payments create-bank-link-session | Web appPayout bank accounts are linked from your Autessa Payments settings in the web app. |
| autessa payments create-invoice-intent | Web appInvoice payments are collected through the Autessa Payments checkout in the web app. |
| autessa payments create-tax-registration | Web appTax registrations are added from your Autessa Payments settings in the web app. |
| autessa payments get-account-session | Web appAutessa Payments account setup is managed with embedded components in the web app. |
| autessa payments get-status | Web appAutessa Payments account status is viewed from your payments settings in the web app. |
| autessa payments get-tax-summary | Web appThe tax summary is viewed from your Autessa Payments dashboard in the web app. |
| autessa payments initiate-onboarding | Web appAutessa Payments onboarding is started from your payments settings in the web app. |
| autessa payments list-bank-accounts | Web appLinked payout bank accounts are viewed from your Autessa Payments settings in the web app. |
| autessa payments list-tax-registrations | Web appTax registrations are viewed from your Autessa Payments settings in the web app. |
| autessa payments list-transactions | Web appAutessa Payments transactions are viewed from your payments dashboard in the web app. |
| autessa payments register-wallet-domain | Web appApple Pay / Google Pay domains are registered from your Autessa Payments settings in the web app. |
| autessa payments remove-bank-account | Web appPayout bank accounts are removed from your Autessa Payments settings in the web app. |
| autessa payments set-default-bank-account | Web appThe default payout bank account is set from your Autessa Payments settings in the web app. |
| autessa payments set-payout-schedule | Web appThe payout schedule is set from your Autessa Payments settings in the web app. |