← Back to CLIs
Nardjo

abby-cli

Manage Abby via CLI - advances, assets, billing, company, contacts, customer-portal, estimates, income-book, invoices, opportunities, organizations, products, purchase-book. Use when user mentions 'Abby', invoices, estimates, credit notes, billing PDFs, contacts, product catalog, income book, purchase book, or wants to automate the Abby API.

Install

$ npx api2cli install Nardjo/abby-cli

Details

Skill type: Wrapper CLI
Auth type: bearer
Version: 0.1.0
Author: Nardjo
Views: 0

README

abby-cli

Command-line client and AgentSkill for the official Abby API. It exposes 76 operations across billing, CRM, products, opportunities, company data, and accounting books.

Install

npx api2cli install Nardjo/abby-cli
abby-cli auth set
abby-cli auth test

API access requires an Abby Pro or Business subscription. The hidden token prompt stores the token in ~/.config/tokens/abby-cli.txt with mode 600.

Usage

abby-cli --help
abby-cli contacts retrieve-contacts --page 1 --limit 10 --json
abby-cli products list-products --page 1 --limit 20 --json
abby-cli billing download-pdf <billing-id> --output-file invoice.pdf --json

Send request bodies inline with --body '{"key":"value"}' or from a file with --body-file body.json. Use --json for automation. Write operations can alter billing or accounting data, so verify IDs before deleting or finalizing.

Resources

advances

CommandDescription
abby-cli advances update-general-informations <advance-id> --body-file <body.json> --jsonUpdate advance general informations
abby-cli advances create-asset <advance-id> --jsonCreate asset from advance

assets

CommandDescription
abby-cli assets get-asset <asset-id> --jsonGet an asset by ID
abby-cli assets update-general-informations <asset-id> --body-file <body.json> --jsonUpdate asset general informations
abby-cli assets update-locale <asset-id> --body-file <body.json> --jsonUpdate asset locale
abby-cli assets update-currency <asset-id> --body-file <body.json> --jsonUpdate asset currency

billing

CommandDescription
abby-cli billing download-pdf <billing-id> --output-file <document.pdf> --jsonDownload a billing document
abby-cli billing archive-billing-document <document-id> --jsonArchive a document
abby-cli billing unarchive-billing-document <document-id> --jsonUnarchive a document
abby-cli billing update-title <document-id> --body-file <body.json> --jsonUpdate a document title
abby-cli billing delete-billing-document <document-id> --jsonPermanently delete a document
abby-cli billing get-billing-by-id <document-id> --jsonGet any billing document by ID
abby-cli billing send-test-email-signature --body-file <body.json> --jsonSend a test email signature
abby-cli billing render-email <billing-id> <email-type> --jsonRender a billing email
abby-cli billing send-email-test <billing-id> <email-type> --jsonSend a billing email test
abby-cli billing send-by-email <billing-id> --body-file <body.json> --jsonSend a billing document by email
abby-cli billing update-bank-information <billing-id> --body-file <body.json> --jsonUpdate bank information
abby-cli billing update-billing-delivery-address <billing-id> --body-file <body.json> --jsonUpdate the delivery address
abby-cli billing finalize <billing-id> --jsonFinalize a billing document
abby-cli billing update-lines <billing-id> --body-file <body.json> --jsonUpdate billing lines
abby-cli billing migrate-sap-products <billing-id> --body-file <body.json> --jsonMigrate lines for SAP compliance
abby-cli billing toggle-include-discount-disbursement <billing-id> --body-file <body.json> --jsonToggle discount disbursement inclusion
abby-cli billing update-display-settings <billing-id> --body-file <body.json> --jsonUpdate display settings
abby-cli billing retrieve-payment-account --jsonRetrieve the payment account

company

CommandDescription
abby-cli company get-me --jsonGet the current company, user, and preferences

contacts

CommandDescription
abby-cli contacts create-contact --body-file <body.json> --jsonCreate a contact
abby-cli contacts get-contact <id> --jsonGet a contact by ID
abby-cli contacts update-contact <id> --body-file <body.json> --jsonUpdate a contact
abby-cli contacts delete-contact <id> --jsonDelete a contact
abby-cli contacts get-contact-by-legacy-id <legacy-id> --jsonGet a contact by legacy ID
abby-cli contacts retrieve-contacts --page 1 --limit 10 --jsonList contacts

customer-portal

CommandDescription
abby-cli customer-portal get-payments --id <value> --token <portal-token> --jsonRetrieve portal billings and payment metadata

estimates

CommandDescription
abby-cli estimates create-estimate-by-contact-or-organization-id <customer-id> --body-file <body.json> --jsonCreate an estimate for a contact or organization
abby-cli estimates update-timeline <estimate-id> --body-file <body.json> --jsonUpdate the timeline
abby-cli estimates sign <estimate-id> --jsonSign an estimate or purchase order
abby-cli estimates unsign <estimate-id> --jsonUnsign an estimate or purchase order
abby-cli estimates refuse <estimate-id> --jsonRefuse an estimate or purchase order
abby-cli estimates unrefuse <estimate-id> --jsonUndo refusal
abby-cli estimates create-advance <id> --jsonCreate an advance invoice
abby-cli estimates update-general-informations <estimate-id> --body-file <body.json> --jsonUpdate general information
abby-cli estimates update-locale <estimate-id> --body-file <body.json> --jsonUpdate locale
abby-cli estimates update-currency <estimate-id> --body-file <body.json> --jsonUpdate currency
abby-cli estimates update-advance-lines <estimate-id> --body-file <body.json> --jsonUpdate advance lines

income-book

CommandDescription
abby-cli income-book create-entry --body-file <body.json> --jsonCreate an income-book entry
abby-cli income-book delete-entry <id> --jsonDelete an income-book entry

invoices

CommandDescription
abby-cli invoices get-invoice <invoice-id> --jsonGet an invoice by ID
abby-cli invoices create-invoice-by-contact-or-organization-id <customer-id> --jsonCreate an invoice for a contact or organization
abby-cli invoices update-timeline <invoice-id> --body-file <body.json> --jsonUpdate the timeline
abby-cli invoices update-invoice-payment-request <invoice-id> --body-file <body.json> --jsonCreate or update a payment request
abby-cli invoices update-invoice-general-informations <invoice-id> --body-file <body.json> --jsonUpdate general information
abby-cli invoices update-invoice-locale <invoice-id> --body-file <body.json> --jsonUpdate locale
abby-cli invoices update-invoice-currency <invoice-id> --body-file <body.json> --jsonUpdate currency
abby-cli invoices create-invoice-frequency <invoice-id> --body-file <body.json> --jsonCreate a recurring frequency
abby-cli invoices delete-invoice-frequency <invoice-id> --jsonDelete a recurring frequency
abby-cli invoices update-invoice-frequency <invoice-id> --frequency-id <value> --body-file <body.json> --jsonUpdate a recurring frequency
abby-cli invoices create-asset <invoice-id> --jsonCreate a credit note from an invoice

opportunities

CommandDescription
abby-cli opportunities retrieve-categories --jsonList opportunity categories
abby-cli opportunities retrieve-opportunity <id> --jsonGet an opportunity
abby-cli opportunities update-opportunity <id> --body-file <body.json> --jsonUpdate an opportunity
abby-cli opportunities delete-opportunity <id> --jsonDelete an opportunity
abby-cli opportunities create-opportunity --body-file <body.json> --jsonCreate an opportunity

organizations

CommandDescription
abby-cli organizations create-organization --body-file <body.json> --jsonCreate an organization
abby-cli organizations retrieve-organization <id> --jsonGet an organization
abby-cli organizations update-organization <id> --body-file <body.json> --jsonUpdate an organization
abby-cli organizations retrieve-organization-contacts <id> --jsonList organization contacts
abby-cli organizations create-organization-contact <id> --body-file <body.json> --jsonCreate an organization contact
abby-cli organizations update-organization-contact <id> --body-file <body.json> --jsonUpdate an organization contact
abby-cli organizations delete-organization <organization-id> --jsonDelete an organization
abby-cli organizations set-default-contact <organization-id> --body-file <body.json> --jsonSet the default contact
abby-cli organizations retrieve-organizations --page <value> --limit <value> --jsonList organizations

products

CommandDescription
abby-cli products list-products --page <value> --limit <value> --jsonList catalog products
abby-cli products get-product <product-id> --jsonGet a product
abby-cli products create-product --body-file <body.json> --jsonCreate a product
abby-cli products update-product <product-id> --body-file <body.json> --jsonReplace a product

purchase-book

CommandDescription
abby-cli purchase-book create-entry --body-file <body.json> --jsonCreate a purchase-book entry
abby-cli purchase-book delete-entry <id> --jsonDelete a purchase-book entry

Product API Note

The official Abby product documentation uses strings such as service_delivery for type and unit for unit, although embedded schema fragments also show numeric types. Follow the documented string examples unless Abby changes the API.

Output

--json returns { "ok": true, "data": ... }. Errors return { "ok": false, "error": { "code": 401, "message": "..." } }.

Global flags: --json, --format <text|json|csv|yaml>, --verbose, --no-color, --no-header.

Development

bun install
bun run build
npx api2cli link abby

The 68 generated operations come from Abby's public OpenAPI 1.90.0. Eight catalog and accounting-book operations are maintained manually from the official Abby documentation because they are absent from the primary specification and SDK.

License

MIT

Sponsors