Invoices

Set the business details

invoices_set_profile · Changes data · Markdown

Sets the business details on quotes and invoices: name, country, address, tax ID, logo, terms, tax, numbering, how to pay and legal notes.

$0.001 a call

From your agent’s balance. A call that fails costs nothing.

An example

Put our company details on invoices: Hansen & Voss GmbH, Billbrookdeich 112 in Hamburg, VAT ID DE123456789, 14 days to pay, 19% VAT, our bank details and the commercial register at the bottom.

Your agent callsinvoices_set_profile$0.001 a call

The example business is Hansen & Voss, a restaurant-equipment wholesaler in Hamburg with 60 staff. The reply is the one the tool really gives.

With these arguments
{
  "legal_name": "Hansen & Voss GmbH",
  "address": "Billbrookdeich 112\n22113 Hamburg\nGermany",
  "country": "DE",
  "tax_id": "DE123456789",
  "email": "billing@hansenvoss.example",
  "phone": "+49 40 66969 100",
  "currency": "EUR",
  "payment_terms_days": 14,
  "tax_rate": 19,
  "tax_label": "VAT",
  "timezone": "Europe/Berlin",
  "footer": "Please pay by bank transfer to Hansen & Voss GmbH\nIBAN DE89 3704 0044 0532 0130 00, BIC COBADEFFXXX",
  "legal_notes": "Hansen & Voss GmbH, Amtsgericht Hamburg HRB 123456\nManaging directors: Clara Hansen, Henrik Voss"
}
What comes back
{
  "profile": {
    "legal_name": "Hansen & Voss GmbH",
    "address": "Billbrookdeich 112\n22113 Hamburg\nGermany",
    "tax_id": "DE123456789",
    "email": "billing@hansenvoss.example",
    "phone": "+49 40 66969 100",
    "logo": null,
    "currency": "EUR",
    "payment_terms_days": 14,
    "quote_valid_days": 30,
    "invoice_prefix": "INV-",
    "quote_prefix": "Q-",
    "credit_note_prefix": "CN-",
    "next_invoice_number": 1,
    "next_quote_number": 1,
    "next_credit_note_number": 1,
    "next_invoice": "INV-0001",
    "next_quote": "Q-0001",
    "next_credit_note": "CN-0001",
    "tax_rate": "19",
    "tax_label": "VAT",
    "footer": "Please pay by bank transfer to Hansen & Voss GmbH\nIBAN DE89 3704 0044 0532 0130 00, BIC COBADEFFXXX",
    "payment_link": null,
    "pay_online": false,
    "timezone": "Europe/Berlin",
    "paper": "a4",
    "country": "DE",
    "legal_notes": "Hansen & Voss GmbH, Amtsgericht Hamburg HRB 123456\nManaging directors: Clara Hansen, Henrik Voss",
    "tax_exemption": null,
    "tax_exemption_note": null,
    "e_invoice": null,
    "document_language": null,
    "documents_in": "de",
    "national_currency": "EUR",
    "national_system": null,
    "ready_to_send": true,
    "missing": []
  }
}

Use it when

Before the first quote or invoice, or when the business's details or bank account change.

What it does

Set the business details printed on quotes and invoices: legal name, country, address, tax ID, email, phone, logo, default currency, payment terms, tax rate, number prefixes and next numbers, payment instructions, an optional payment link and legal notes. Only the fields given change. Sending needs legal_name and country; in the EU, the UK and Switzerland an invoice also needs the address and tax ID, checked when it is sent.

What comes back

The profile as saved: the business details, numbering and defaults (tax exemption, e-invoice format), whether invoices can be paid online, its national currency, the national system its domestic invoices must go through (if any), and what is still missing before documents can be sent. Every reply also carries cost_usd and balance_usd.

Inputs

NameTypeWhat it is
legal_namestringThe business name on documents; also the email sender name. Up to 200 characters.
addressstringPostal address, one line per row. Up to 1,000 characters.
tax_idstringVAT, GST or tax number, printed with the address. Up to 60 characters.
emailstringWhere customers write about invoices: printed, and the Reply-To of emails. Up to 254 characters.
phonestringUp to 40 characters.
logo_file_idstringAn image in the file store (PNG, JPEG, GIF, WebP or SVG, up to 1 MB). "" removes the logo. Up to 36 characters.
currencystringDefault currency of new documents, ISO 4217. Matches ^[A-Za-z]{3}$.
payment_terms_daysintegerDays from issue to due date. Default 14. 0 to 365.
quote_valid_daysintegerHow long quotes stay open. Default 30. 1 to 365.
invoice_prefixstringDefault "INV-": invoices are INV-0001, INV-0002... Up to 20 characters, matches ^[A-Za-z0-9 ._/#-]*$.
quote_prefixstringDefault "Q-". Up to 20 characters, matches ^[A-Za-z0-9 ._/#-]*$.
credit_note_prefixstringDefault "CN-". Up to 20 characters, matches ^[A-Za-z0-9 ._/#-]*$.
next_invoice_numberintegerThe number the next invoice gets, e.g. to carry on from another tool. Never one already used. 1 to 99,999,999.
next_quote_numberinteger1 to 99,999,999.
next_credit_note_numberinteger1 to 99,999,999.
tax_ratenumber or stringDefault tax percent for new lines, e.g. 19. 0 for none. Up to 24 characters.
tax_labelstringWhat the tax is called on documents: "VAT", "GST", "Sales tax". Default "Tax". Up to 30 characters.
footerstringPayment instructions printed at the bottom of invoices, e.g. bank name, IBAN and BIC. Up to 2,000 characters.
payment_linkstringAn https link where customers pay, e.g. the business's own Stripe Payment Link. "" removes it. Up to 500 characters.
pay_onlinebooleanA Pay button on each invoice's page: Stripe Checkout on the business's own Stripe (connect it with invoices_connect_stripe); each payment is recorded and posted to the books on its own. $0.10 per invoice paid online.
timezonestringIANA time zone for dates, e.g. "America/New_York". Default UTC. Up to 64 characters.
paperstringDefault: Letter for USD and CAD businesses, else A4. One of: a4,letter.
countrystringISO 3166-1 code of the country the business is established in, e.g. "DE". Needed to send: it decides what invoices must show (in the EU the VAT ID, addresses, the date of supply, why a line has no tax, VAT in the national currency) and is checked before each one goes out. Up to 2 characters.
legal_notesstringPrinted at the foot of every quote, invoice and credit note: the company register and managing directors, a small-business VAT note, late-payment terms the law asks for (France: penalty rate and the EUR 40 indemnity). In France and Germany the country's default wording is filled in when the country is set and none is given; "" brings it back. Up to 2,000 characters.
document_languagestringThe language of the fixed words on quotes, invoices and credit notes (labels, dates, amounts); "" picks it by country: German in Germany and Austria, French in France, else English. The business's own text is printed as written. One of: ,en,de,fr.
tax_exemptionstringWhy lines with tax_rate 0 carry no tax, printed on the invoice as the law asks: exempt, zero_rated, reverse_charge (the customer accounts for the VAT), intra_eu (goods to a business in another EU country), export (goods leaving the EU), outside_scope, small_business (a business under its country's small-business VAT exemption, such as UStG §19 or art. 293 B CGI: no line may carry tax). Needed in the EU for any line without tax. Default: the profile's. One of: ,exempt,zero_rated,reverse_charge,intra_eu,export,outside_scope,small_business.
tax_exemption_notestringThe wording printed for the exemption instead of the standard one, e.g. "Steuerbefreit als Kleinunternehmer nach § 19 UStG". Up to 300 characters.
e_invoicestringInvoices and their credit notes as EN 16931 e-invoices (German B2B invoices must be from 2027): factur-x (Factur-X/ZUGFeRD, the XML inside the PDF/A-3) or xrechnung (XRechnung 3.0, its own XML beside the PDF), checked against the EN 16931 schema before sending. "" is the default: none, except that from 2027 an invoice from a German business to a German business above EUR 250 is a factur-x; "none" opts out (a business under the EUR 800,000 turnover allowance until 2028). Needs the customer's country. Default: the profile's. One of: ,factur-x,xrechnung,none.

The call

Over MCP, call invoices_set_profile on https://api.conecto.chat/mcp/invoices. Over REST:

Terminal
curl -X POST https://api.conecto.chat/v1/tools/invoices_set_profile \
  -H "Authorization: Bearer $CONECTO_KEY" \
  -H "Content-Type: application/json" \
  -d '{"legal_name":"Hansen & Voss GmbH","address":"Billbrookdeich 112\n22113 Hamburg\nGermany","country":"DE","tax_id":"DE123456789","email":"billing@hansenvoss.example","phone":"+49 40 66969 100","currency":"EUR","payment_terms_days":14,"tax_rate":19,"tax_label":"VAT","timezone":"Europe/Berlin","footer":"Please pay by bank transfer to Hansen & Voss GmbH\nIBAN DE89 3704 0044 0532 0130 00, BIC COBADEFFXXX","legal_notes":"Hansen & Voss GmbH, Amtsgericht Hamburg HRB 123456\nManaging directors: Clara Hansen, Henrik Voss"}'

When it refuses

A refused call costs nothing and says what to do next.

CodeWhenWhat to do
invalid_input400A line, amount, date, currency, country, email or link is not valid, or the total comes out negative or too large.Fix what the message names: amounts like 19.99, dates like 2026-11-20, currencies like EUR.
not_found404logo_file_id is not a file in the store.Upload the logo with files_upload first.
number_taken409The next number asked for was used already.Give a next number higher than the last one used, as the message says.
not_connected409pay_online needs the business's own Stripe, and it is not connected.Connect it with invoices_connect_stripe first.

Give this to your agent.

Set up Conecto from https://conecto.chat/SKILL.md