Invoices

Send a quote or invoice

invoices_send · Changes data · Markdown

Sends a draft: it gets the next number, its PDF is made, and the customer is emailed a link to view, pay or accept it.

$0.10 a call

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

An example

Send the Elbblick invoice to Lukas Meyer with a short thank-you.

Your agent callsinvoices_send$0.10 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
{
  "invoice_id": "2d9c4e7b-1a3f-4c5d-8e6f-0b1a2c3d4e5f",
  "message": "Thank you for your order. The chairs arrive in week 49."
}
What comes back
{
  "invoice": {
    "invoice_id": "2d9c4e7b-1a3f-4c5d-8e6f-0b1a2c3d4e5f",
    "kind": "invoice",
    "number": "INV-0042",
    "status": "sent",
    "currency": "EUR",
    "issue_date": "2026-10-14",
    "due_date": "2026-10-28",
    "overdue": false,
    "days_overdue": 0,
    "customer": {
      "contact_id": null,
      "company_id": null,
      "name": "Hotel Elbblick GmbH",
      "email": "lukas.meyer@hotel-elbblick.example",
      "address": "Elbchaussee 120\n22763 Hamburg",
      "tax_id": "",
      "country": null
    },
    "total": "13887.30",
    "total_formatted": "€13,887.30",
    "amount_paid": "0.00",
    "balance": "13887.30",
    "balance_formatted": "€13,887.30",
    "public_url": "https://cncto.co/i/_u3Gmo2r0-jnEA3tOB97r7VmHS0qK7TS",
    "created_at": "2026-10-14T08:00:00+00:00",
    "sent_at": "2026-10-14T08:00:00+00:00",
    "credited": "0.00",
    "items": [
      {
        "description": "Bistro chair, beech\nStackable, for terraces",
        "quantity": "40",
        "unit_price": "320",
        "tax_rate": "19",
        "discount_percent": "10",
        "amount": "12800.00",
        "discount": "1280.00",
        "tax": "2188.80",
        "total": "13708.80"
      },
      {
        "description": "Delivery and setup",
        "quantity": "1",
        "unit_price": "150",
        "tax_rate": "19",
        "discount_percent": "0",
        "amount": "150.00",
        "discount": "0.00",
        "tax": "28.50",
        "total": "178.50"
      }
    ],
    "totals": {
      "subtotal": "12950.00",
      "subtotal_formatted": "€12,950.00",
      "discount": "1280.00",
      "discount_formatted": "€1,280.00",
      "tax": "2217.30",
      "tax_formatted": "€2,217.30",
      "total": "13887.30",
      "total_formatted": "€13,887.30",
      "credited": "0.00",
      "credited_formatted": "€0.00",
      "amount_paid": "0.00",
      "amount_paid_formatted": "€0.00",
      "balance": "13887.30",
      "balance_formatted": "€13,887.30",
      "taxes": [
        {
          "rate": "19",
          "base": "11670.00",
          "amount": "2217.30",
          "amount_formatted": "€2,217.30"
        }
      ]
    },
    "supply": {
      "label": "Date of supply",
      "text": "October 14, 2026",
      "from": "2026-10-14",
      "until": "2026-10-14"
    },
    "tax_exemption": null,
    "tax_note": null,
    "vat_exchange_rate": null,
    "national_vat": null,
    "e_invoice": null,
    "notes": "",
    "payment_link": null,
    "business": {
      "name": "Hansen & Voss GmbH",
      "address": "Billbrookdeich 112\n22113 Hamburg\nGermany",
      "tax_id": "DE123456789",
      "email": "billing@hansenvoss.example",
      "phone": "+49 40 66969 100",
      "logo_file_id": "",
      "footer": "Please pay by bank transfer to Hansen & Voss GmbH\nIBAN DE89 3704 0044 0532 0130 00, BIC COBADEFFXXX",
      "tax_label": "VAT",
      "paper": "a4",
      "country": "DE",
      "legal_notes": "Hansen & Voss GmbH, Amtsgericht Hamburg HRB 123456\nManaging directors: Clara Hansen, Henrik Voss",
      "document_language": ""
    },
    "pdf": {
      "file_id": "adfc06f7-22c0-45d5-bb24-bdfe19af441e",
      "name": "Invoice INV-0042.pdf",
      "content_type": "application/pdf",
      "size": "582 bytes",
      "size_bytes": 582,
      "sha256": "7a628ee1199dd863f0236a61a39b6729a977b4ea18a669e9930a57280cb2326e",
      "created_at": "2026-10-14T08:00:00+00:00",
      "download_url": "https://cncto.co/d/adfc06f7-22c0-45d5-bb24-bdfe19af441e?t=eyJmIjoiYWRmYzA2ZjctMjJjMC00NWQ1LWJiMjQtYmRmZTE5YWY0NDFlIiwiZXhwIjoxNzkyMTYwODk3fQ:1xHMRN:8J2-MHhqPVO21ZmnbiGiq9g8BSSRnWwvZxr10NUQ3Bs",
      "link_expires_in_hours": 24
    },
    "payments": [],
    "quote_id": null,
    "credit_notes": [],
    "viewed_at": null,
    "accepted_at": null,
    "declined_at": null,
    "paid_at": null,
    "voided_at": null,
    "void_reason": null,
    "last_emailed_at": "2026-10-14T08:00:00+00:00",
    "reminders_sent": 0,
    "history": [
      {
        "at": "2026-10-14T08:00:00+00:00",
        "event": "created",
        "detail": "",
        "by": "key 4101 (Pip)"
      },
      {
        "at": "2026-10-14T08:00:00+00:00",
        "event": "sent",
        "detail": "INV-0042",
        "by": "key 4101 (Pip)"
      }
    ]
  },
  "emailed_to": "lukas.meyer@hotel-elbblick.example",
  "warnings": []
}

Use it when

A draft is ready for the customer, or a sent one should be emailed again.

What it does

Send a draft: it takes the next number (gapless), its PDF is made and kept in the file store, and the customer is emailed a link to its page (to view, pay or accept it) and to the PDF. On a document already sent it emails it again (to `to`, if given). email: false sends it without emailing anyone, to hand the link over yourself. Emailing people outside the business needs a paid account. When the account keeps books (books_setup), a sent invoice is posted to them. Before an invoice or credit note takes its number it is checked against the law of the business's country (in the EU, the UK and Switzerland: the business's address and VAT ID, the customer's VAT ID and address where needed, why a line has no tax, the VAT in the national currency); what is missing is refused for free, warnings come back. With e_invoice set it also goes out as an EN 16931 e-invoice (Factur-X inside the PDF, or an XRechnung XML beside it), validated against the official schema first.

What comes back

invoice: the document in full, now numbered and sent, with its page and PDF links, its date of supply, any VAT in the national currency and, for an e-invoice, its format and XML file; emailed_to: who it went to (null with email: false); warnings: what the law asks for that is worth adding next time. Every reply also carries cost_usd and balance_usd.

Inputs

NameTypeWhat it is
invoice_idRequiredstringThe invoice_id invoices_create returned (quotes and credit notes have one too). Exactly 36 characters.
emailbooleanfalse: number it and make the PDF and the page, but email no one. Default: true.
tostringSend to this address instead of the customer's email. Up to 254 characters.
messagestringA short note in the email, e.g. "Thanks for your order!". Up to 2,000 characters.
link_hoursintegerHow long the PDF download link works, in hours (up to 168). 1 to 168. Default: 24.

The call

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

Terminal
curl -X POST https://api.conecto.chat/v1/tools/invoices_send \
  -H "Authorization: Bearer $CONECTO_KEY" \
  -H "Content-Type: application/json" \
  -d '{"invoice_id":"2d9c4e7b-1a3f-4c5d-8e6f-0b1a2c3d4e5f","message":"Thank you for your order. The chairs arrive in week 49."}'

When it refuses

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

CodeWhenWhat to do
not_found404No quote or invoice of the business has that invoice_id.Find it with invoices_list and use its invoice_id.
profile_incomplete409The business has no legal name or country on its documents yet.Set them with invoices_set_profile (legal_name and country, and ideally the address, email and tax_id).
invoice_incomplete409The invoice lacks what the law of the business's country needs on it: the business's address or VAT ID, the customer's VAT ID or address for a reverse charge, why a line has no tax.Add what the message names (invoices_update, invoices_set_profile) and send again; nothing was numbered.
national_system_required409The business is in a country whose domestic invoices must go through a national system (Italy, Poland, Belgium, Croatia, Romania, Hungary, Greece, Portugal; Spain from 2027, France from September 2027).Send it through that system; invoices to customers abroad still work.
vat_id_invalid409VIES says the customer's VAT ID is not valid, so the reverse-charge or intra-Community invoice can't go out.Check the number with the customer and fix customer.tax_id with invoices_update.
no_rate409The invoice is in another currency than the national one and its VAT must be shown in both, but there is no rate for the day.Pass vat_exchange_rate with invoices_update (UK businesses always give it).
no_items409The draft has no lines.Add lines with invoices_update.
invalid_dates409The due date or valid_until is before the issue date, or the issue date is in the future or before the last invoice numbered in the series (numbers follow the dates).Fix it with invoices_update; clearing issue_date dates it the day it is sent.
void409The document is void.Create a new one.
already_paid409The invoice is paid in full.There is nothing to send.
already_accepted409The customer accepted the quote already.Turn it into an invoice with invoices_convert_quote.
already_declined409The customer declined the quote.Create a new quote.
already_sent409The document was sent already.Call again with email: true to email it again.
number_taken409The next number is used already.Set a higher next number with invoices_set_profile.
storage_full409The file store has no room for the PDF.Delete files with files_delete, or add room with files_add_storage.
no_email409The document has no customer email to send to.Pass to, or set customer.email on the draft with invoices_update.
payment_required_for_outbound402The balance is still free credit, which cannot email people outside the business.Top up once (POST /v1/topups), or send with email: false and hand the link over yourself.
suppressed422The address bounced, complained or unsubscribed before.Send to another address with to.
too_many_emails429This document was emailed as often as it may in 24 hours.Try again tomorrow.
daily_email_limit429The business emailed as many quotes and invoices in 24 hours as it may.Try again tomorrow, or ask Conecto for more.
email_failed502The email could not be sent; nothing was charged.Call again in a moment.
before_start409The date is before the books start.Use a later date, or set an earlier start with books_setup.
period_locked409The books are locked for that date.Use a later date, or unlock the period with books_lock.
no_role409The books have no account for a role the posting needs.Give an account that role with books_save_accounts.
unavailable503The PDF could not be made right now; nothing was charged.Call again in a moment.

Give this to your agent.

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