Batappli API and MCP server Let your AI agent quote the job and chase the payment.

Batappli publishes no public API and has no official MCP server (checked 14 Nov 2026). Cotlet runs a hosted Batappli MCP server with 14 tools that ChatGPT and Claude use in your own Batappli en ligne account at batappli.app. Quotes, deposits and reminders wait for your OK.

  • Free 7-day trial, no card
  • Works with Batappli en ligne
  • Unofficial, not affiliated with Batappli
Batappli logo Batappli Cloud Browser

14 tools Read and write

Artisan office work

What can your AI agent do in Batappli? The paperwork between the site visit and the bank transfer.

  • Turn a phone call into a draft quote

  • Email a quote or share its online link

  • Record a deposit and get the deposit invoice

  • Convert an accepted quote into the invoice

  • Send unpaid-invoice reminders

  • Read revenue and margin every Monday

No public API, no MCP

Does Batappli have an MCP server or an API? The official Batappli routes, checked 14 November 2026.

Batappli publishes no public API and no developer docs, and Batappli has no official MCP server. Its own llms.txt lists one integration: the accounting export. Cotlet works in Batappli en ligne, the web version at batappli.app; the installed versions run on your own computer and are out of reach.

  • Data leaves the app as an accounting export for Cegid, EBP, Quadra, Sage or plain ASCII, and as Excel files.
  • Batappli.ia, the built-in AI, writes quote lines inside a quote: 8 AI quotes a month on Batappli Devis, 16 on Artisan.
  • Batappli Mobile works only with the installed versions; Batappli en ligne runs in any browser.
Batappli by hand and Cotlet compared
What you need Batappli aloneCotlet
Ask ChatGPT or Claude to do the work No API or MCP server Hosted MCP server
Quotes, deposits and invoices By hand, document by document 14 tools, sends after your OK
Unpaid reminders and margin In the unpaid window and dashboard On request or on a schedule
Run from n8n or a script No API, no Zapier app REST, same key

Checked 14 Nov 2026. Sources: Batappli: features · Batappli: pricing · Batappli: accounting export · Batappli: llms.txt · Batappli Mobile or Batappli en ligne (19 Jun 2025) · Batappli en ligne sign-in

Set up once

How does the Batappli MCP server work? The Batappli MCP server by Cotlet: your agent works in your own Batappli account.

  1. 1Sign in to Batappli en ligne

    Once, in a browser we host for you.

  2. 2Connect your AI agent

    One address in its settings.

  3. 3Dictate the quote

    It drafts the lines, you check the total.

Your agent works in your own signed-in Cloud Browser. Quotes sent to clients, deposits, invoices, payments and reminders wait for your OK. Who can see your session

Any MCP client

How to connect Batappli to your AI agent

  1. 1

    Sign in to Batappli en ligne in a Cloud Browser. Open batappli.app in your Cotlet Cloud Browser and log in on the "Connexion" form with your own email and password.

  2. 2

    Add the Cotlet address. Enter https://cotlet.dev/mcp/v1 as the MCP server or connector URL in your agent.

  3. 3

    Let the agent in. Chat apps open a Cotlet sign-in page. Editors, n8n and scripts send an API key made in the console.

Batappli sits on the shared address https://cotlet.dev/mcp/v1 with every other app you enable, so one connector covers them all. Turned Batappli on after connecting? Refresh the connector and its 14 tools appear.

ChatGPT
Settings > Apps & Connectors > Create
MCP server URL: https://cotlet.dev/mcp/v1/connect
Authentication: OAuth
Claude
Settings > Connectors > Add custom connector
URL: https://cotlet.dev/mcp/v1/connect

Claude Code:
claude mcp add --transport http cotlet \
  https://cotlet.dev/mcp/v1 \
  --header "Authorization: Bearer $COTLET_API_KEY"
Cursor
// ~/.cursor/mcp.json
{
  "mcpServers": {
    "cotlet": {
      "url": "https://cotlet.dev/mcp/v1",
      "headers": { "Authorization": "Bearer ${env:COTLET_API_KEY}" }
    }
  }
}
Codex
# ~/.codex/config.toml
[mcp_servers.cotlet]
url = "https://cotlet.dev/mcp/v1"
bearer_token_env_var = "COTLET_API_KEY"
n8n
MCP Client Tool (inside an AI Agent)
Transport: HTTP Streamable
URL: https://cotlet.dev/mcp/v1
Auth: Bearer, <your key>
Tool: batappli_read
7 read, 7 write

All 14 Batappli MCP tools

The client, "Devis", "Factures" and "Impayés" screens of Batappli en ligne, one tool per job. Reads, new clients and draft quotes run at once; the 5 tools that send, invoice or record money ask first.

Clients (Contacts)3

Search before adding, so a returning client keeps one file with all their documents and payments.

  • list_clients List the clients (and other contacts) of your Batappli account, with an optional name search. read

    Returns the clients with the id of each client file, their name and the contact details shown on the file. Batappli gives every client a file that holds the history of their documents and payments. Suppliers and subcontractors are contacts of the same kind and are listed the same way. Pages follow next_cursor until it is null.

    MCP callbatappli_read → list_clients

    REST endpointGET https://cotlet.dev/api/v1/batappli/clients

    Parameters

    Parameters: list_clients
    NameTypeDescription
    search string string Part of a client name.
    cursor string string next_cursor of the previous page.

    Example response

    {
      "clients": [
        {
          "client_id": "cl_4821",
          "name": "Camille Roux",
          "email": "camille@example.com",
          "phone": "06 00 00 00 01"
        },
        {
          "client_id": "cl_4790",
          "name": "Syndic Les Tilleuls",
          "email": "compta@example.com",
          "phone": ""
        }
      ],
      "next_cursor": null
    }
  • get_client Open one client file: contact details, documents, payments and what is unpaid. read

    Returns the same things as the client file in Batappli: the contact, the list of quotes and invoices with their type, date and amount, the payments, and the unpaid total shown at the top of the file. Read this before a reminder or a quote so the agent knows what the client already has.

    MCP callbatappli_read → get_client

    REST endpointGET https://cotlet.dev/api/v1/batappli/clients/{client_id}

    Parameters

    Parameters: get_client
    NameTypeDescription
    client_id string required string Id from list_clients.

    Example input

    {
      "client_id": "client_8c41d2"
    }

    Example response

    {
      "client_id": "cl_4821",
      "name": "Camille Roux",
      "documents": [
        {
          "document_id": "doc_9032",
          "type": "Devis",
          "date": "2026-11-03",
          "total_ttc": 861.59,
          "status": "Accepted"
        },
        {
          "document_id": "doc_9047",
          "type": "Facture d'acompte",
          "date": "2026-11-10",
          "total_ttc": 258.48,
          "status": "Paid"
        }
      ],
      "payments": [
        {
          "date": "2026-11-10",
          "amount": 258.48,
          "method": "Virement"
        }
      ],
      "unpaid_total": 0
    }
  • create_client Create a client file in Batappli. write

    Creates the client with an empty file that fills with their documents and payments. Search with list_clients first so the agent does not create a duplicate. It reaches no one: the client is not notified, so it does not wait for your OK, and you can edit or delete the client in Batappli.

    MCP callbatappli_write → create_client

    REST endpointPOST https://cotlet.dev/api/v1/batappli/clients

    Parameters

    Parameters: create_client
    NameTypeDescription
    name string required string Client name.
    email string string Email address.
    phone string string Phone number.
    address string string Postal address, one line.

    Example input

    {
      "name": "Jane Doe"
    }

    Example response

    {
      "client_id": "cl_4833",
      "name": "Camille Roux",
      "email": "camille@example.com",
      "phone": "06 00 00 00 01"
    }

Quotes (Devis)4

Draft quotes take the lines your agent writes, not the BatiChiffrage library; "Partager" sends by email, link or PDF.

  • list_quotes List quotes with the columns of the Batappli list: date, client, amount, deposit and status. read

    Returns the quote id, number, client, date, total including VAT, deposit received and status of each quote. It returns the list only; get_quote gives the lines and the margin. Amounts are the ones Batappli shows, no conversion.

    MCP callbatappli_read → list_quotes

    REST endpointGET https://cotlet.dev/api/v1/batappli/quotes

    Parameters

    Parameters: list_quotes
    NameTypeDescription
    status string string The status label as shown in Batappli. Batappli lets you customise quote statuses, so use a label from your own list.
    client_id string string Only this client's quotes.
    since string string Only quotes dated on or after this date, YYYY-MM-DD.
    cursor string string next_cursor of the previous page.

    Example response

    {
      "quotes": [
        {
          "quote_id": "doc_9032",
          "number": "D-0412",
          "client": "Camille Roux",
          "date": "2026-11-03",
          "total_ttc": 861.59,
          "deposit": 258.48,
          "status": "Accepted"
        },
        {
          "quote_id": "doc_9020",
          "number": "D-0409",
          "client": "Syndic Les Tilleuls",
          "date": "2026-10-28",
          "total_ttc": 3400,
          "deposit": 0,
          "status": "Sent"
        }
      ],
      "next_cursor": null
    }
  • get_quote Read one quote: lines, totals, deposits and the margin Batappli shows on it. read

    Returns each line with its description, quantity, unit and unit price, the totals before and after VAT, and the deposits recorded. It also returns the gross margin, the cost price and the margin coefficient that Batappli shows on every quote, for labour and for supplies. Nothing is changed.

    MCP callbatappli_read → get_quote

    REST endpointGET https://cotlet.dev/api/v1/batappli/quotes/{quote_id}

    Parameters

    Parameters: get_quote
    NameTypeDescription
    quote_id string required string Id from list_quotes.

    Example input

    {
      "quote_id": "quote_8c41d2"
    }

    Example response

    {
      "quote_id": "doc_9032",
      "number": "D-0412",
      "client": "Camille Roux",
      "lines": [
        {
          "description": "Chauffe-eau électrique 200 L",
          "quantity": 1,
          "unit": "U",
          "unit_price_ht": 620.75,
          "total_ht": 620.75
        },
        {
          "description": "Main d'oeuvre, dépose et installation",
          "quantity": 3,
          "unit": "H",
          "unit_price_ht": 54.17,
          "total_ht": 162.51
        }
      ],
      "total_ht": 783.26,
      "vat": 78.33,
      "total_ttc": 861.59,
      "deposits": [
        {
          "date": "2026-11-10",
          "amount": 258.48
        }
      ],
      "status": "Accepted"
    }
  • create_quote Create a quote for a client from lines you give, without sending it. write

    Creates the quote in Batappli with the next quote number and returns its id and totals. It does not use the price library or Batappli.ia: the lines are the ones your agent writes. The quote stays a draft until share_quote sends it. It reaches no one and you can delete it in Batappli, so it does not wait for your OK.

    MCP callbatappli_write → create_quote

    REST endpointPOST https://cotlet.dev/api/v1/batappli/clients/{client_id}/quotes

    Parameters

    Parameters: create_quote
    NameTypeDescription
    client_id string required string Id from list_clients or create_client.
    lines array required array Each line: description, quantity, unit (for example U or H) and unit_price_ht.
    vat_rate number required number VAT rate in percent for every line, for example 10 or 20.

    Example input

    {
      "client_id": "cl_4833",
      "lines": [
        {
          "description": "Chauffe-eau électrique 200 L",
          "quantity": 1,
          "unit": "U",
          "unit_price_ht": 620.75
        },
        {
          "description": "Main d'oeuvre, dépose et installation",
          "quantity": 3,
          "unit": "H",
          "unit_price_ht": 54.17
        }
      ],
      "vat_rate": 10
    }

    Example response

    {
      "quote_id": "doc_9032",
      "number": "D-0412",
      "client": "Camille Roux",
      "total_ht": 783.26,
      "vat": 78.33,
      "total_ttc": 861.59,
      "status": "Draft"
    }
  • share_quote Share a quote with the client by email, by online link or as a PDF. writeAsks first

    Uses the Share button of the quote. With `email` Batappli sends the quote to the client; with `link` it returns the online page where the client can read the quote; with `pdf` it returns the file and sends nothing. The email cannot be recalled. By default you confirm each call; you can switch that off for this tool.

    MCP callbatappli_write → share_quote

    REST endpointPOST https://cotlet.dev/api/v1/batappli/quotes/{quote_id}/share

    Parameters

    Parameters: share_quote
    NameTypeDescription
    quote_id string required string Id from list_quotes or create_quote.
    method string required string One of `email`, `link`, `pdf`: the three ways of the Share button.
    message string string Text of the email, for `email`.

    Example input

    {
      "quote_id": "quote_8c41d2",
      "method": "method"
    }

    Example response

    {
      "quote_id": "doc_9032",
      "method": "email",
      "sent_to": "camille@example.com"
    }

Invoices and payments (Factures)4

Deposits create the "Facture d'acompte", "Convertir" makes the invoice, "Encaisser l'échéance" records the payment. No tool takes money from a client.

  • list_invoices List invoices with their type, date, amount and payment state. read

    Returns the invoice id, number, type, client, date, total including VAT, amount still due and due date. The list is the one on the Batappli invoices screen. Use list_unpaid_invoices when you only want what is late.

    MCP callbatappli_read → list_invoices

    REST endpointGET https://cotlet.dev/api/v1/batappli/invoices

    Parameters

    Parameters: list_invoices
    NameTypeDescription
    type string string The type column of the list, for example the deposit invoice (acompte), situation or credit note (avoir) types Batappli has.
    client_id string string Only this client's invoices.
    since string string Only invoices dated on or after this date, YYYY-MM-DD.
    cursor string string next_cursor of the previous page.

    Example response

    {
      "invoices": [
        {
          "invoice_id": "doc_9047",
          "number": "F-0388",
          "type": "Facture d'acompte",
          "client": "Camille Roux",
          "date": "2026-11-10",
          "total_ttc": 258.48,
          "due": 0
        },
        {
          "invoice_id": "doc_9051",
          "number": "F-0389",
          "type": "Facture",
          "client": "Camille Roux",
          "date": "2026-11-13",
          "total_ttc": 861.59,
          "due": 603.11
        }
      ],
      "next_cursor": null
    }
  • record_deposit Record a deposit received on a quote; Batappli creates the deposit invoice. writeAsks first

    Does what Add a payment (Ajouter un règlement) does in the Deposits tab of a quote: it records the payment and Batappli creates the deposit invoice (facture d'acompte) by itself. The invoice takes the next number in your invoice sequence and feeds your accounting export. Check the amount with the client first. By default you confirm each call; you can switch that off for this tool.

    MCP callbatappli_write → record_deposit

    REST endpointPOST https://cotlet.dev/api/v1/batappli/quotes/{quote_id}/deposits

    Parameters

    Parameters: record_deposit
    NameTypeDescription
    quote_id string required string Id from list_quotes.
    amount number required number Amount received, as Batappli shows amounts.
    method string required string Payment method as named in Batappli, for example transfer or cheque.

    Example input

    {
      "quote_id": "quote_8c41d2",
      "amount": 1,
      "method": "method"
    }

    Example response

    {
      "quote_id": "doc_9032",
      "invoice_id": "doc_9047",
      "number": "F-0388",
      "type": "Facture d'acompte",
      "amount": 258.48
    }
  • convert_quote_to_invoice Convert a quote into an invoice with all its amounts. writeAsks first

    Does what Convert does in the quote list: Batappli creates the invoice with every line and amount of the quote and its due date. The invoice takes the next number in your sequence and cannot be renumbered, so the agent checks the quote with get_quote first. It sends nothing to the client. By default you confirm each call; you can switch that off for this tool.

    MCP callbatappli_write → convert_quote_to_invoice

    REST endpointPOST https://cotlet.dev/api/v1/batappli/quotes/{quote_id}/to-invoice/convert

    Parameters

    Parameters: convert_quote_to_invoice
    NameTypeDescription
    quote_id string required string Id from list_quotes.

    Example input

    {
      "quote_id": "quote_8c41d2"
    }

    Example response

    {
      "invoice_id": "doc_9051",
      "number": "F-0389",
      "client": "Camille Roux",
      "total_ttc": 861.59,
      "due": 603.11
    }
  • record_payment Record a payment received on an invoice, as Cash the due date does in Batappli. writeAsks first

    Uses the Payment tab of the invoice (Encaisser l'échéance): it records the payment against the due date, so the invoice leaves the unpaid list when it is paid in full. Batappli puts the payment in your next accounting export, so a wrong amount reaches your accountant. By default you confirm each call; you can switch that off for this tool.

    MCP callbatappli_write → record_payment

    REST endpointPOST https://cotlet.dev/api/v1/batappli/invoices/{invoice_id}/payments

    Parameters

    Parameters: record_payment
    NameTypeDescription
    invoice_id string required string Id from list_invoices or list_unpaid_invoices.
    amount number required number Amount received.
    method string required string Payment method as named in Batappli.

    Example input

    {
      "invoice_id": "invoice_8c41d2",
      "amount": 1,
      "method": "method"
    }

    Example response

    {
      "invoice_id": "doc_9051",
      "amount": 603.11,
      "method": "Virement",
      "due": 0
    }

Unpaid and reports (Impayés, Analyse)3

Days late as Batappli counts them, the three reminder templates, and the figures of the dashboard.

  • list_unpaid_invoices List the unpaid invoices from the Batappli unpaid tracking: client, amount and days late. read

    Returns what Batappli shows in its unpaid alert at start-up: the client, the amount due and the days late for each invoice, with the invoice id you pass to send_payment_reminder. Batappli computes the days late, nothing is estimated. Nothing is sent.

    MCP callbatappli_read → list_unpaid_invoices

    REST endpointGET https://cotlet.dev/api/v1/batappli/unpaid-invoices

    Parameters

    Parameters: list_unpaid_invoices
    NameTypeDescription
    client_id string string Only this client's unpaid invoices.

    Example response

    {
      "unpaid": [
        {
          "invoice_id": "doc_8920",
          "number": "F-0371",
          "client": "Syndic Les Tilleuls",
          "amount_due": 1200,
          "days_late": 34
        },
        {
          "invoice_id": "doc_9051",
          "number": "F-0389",
          "client": "Camille Roux",
          "amount_due": 603.11,
          "days_late": 2
        }
      ]
    }
  • send_payment_reminder Email a reminder for an unpaid invoice, from one of the three Batappli templates. writeAsks first

    Does what the reminder button in the unpaid tracking window does: it emails the client the chosen template for this invoice. The three templates go from friendly to formal, and Batappli suggests that order. The email reaches your client and cannot be recalled. By default you confirm each call; you can switch that off for this tool.

    MCP callbatappli_write → send_payment_reminder

    REST endpointPOST https://cotlet.dev/api/v1/batappli/invoices/{invoice_id}/payment-reminders

    Parameters

    Parameters: send_payment_reminder
    NameTypeDescription
    invoice_id string required string Id from list_unpaid_invoices.
    template string required string One of `courtoisie`, `avertissement`, `mise_en_demeure`: the three email templates of the unpaid tracking window.
    message string string Extra text added to the template.

    Example input

    {
      "invoice_id": "invoice_8c41d2",
      "template": "template"
    }

    Example response

    {
      "invoice_id": "doc_8920",
      "template": "avertissement",
      "sent_to": "compta@example.com"
    }
  • get_dashboard Read the Analysis dashboard: revenue, margin and profitability for a period. read

    Returns the indicators of the Analyse > Tableau de bord screen for the period: invoiced revenue, collections, gross margin and the margin rate. Without dates it returns the period the dashboard opens on. Figures are the ones Batappli shows, with no recalculation. It changes nothing.

    MCP callbatappli_read → get_dashboard

    REST endpointGET https://cotlet.dev/api/v1/batappli/dashboard

    Parameters

    Parameters: get_dashboard
    NameTypeDescription
    from string string First day, YYYY-MM-DD.
    to string string Last day, YYYY-MM-DD.

    Example response

    {
      "period": {
        "from": "2026-11-02",
        "to": "2026-11-08"
      },
      "invoiced_ht": 6840,
      "collected": 4120,
      "gross_margin": 2394,
      "margin_rate": 35
    }
Encrypted, revocable

Who can see my Batappli session, and how do I revoke it?

  • What we store

    Your signed-in Batappli en ligne browser profile, AES-256-GCM encrypted, in Finland. Never your password.

  • What your agent gets

    The 14 Batappli tools. The session stays inside the Cloud Browser.

  • What the session sees

    The clients, quotes and invoices your own user can open, and nothing more.

  • What no tool touches

    Your Batappli subscription and login, user rights, online card payment with Stripe, the accounting export, eFacture, stock and supplier orders.

  • If Batappli signs you out

    You sign in again yourself, in the same Cloud Browser.

  • How to cut access

    Disable Batappli for agents, reset the browser, or change your password.

You type your Batappli password yourself on the "Connexion" page; the agent only works in the session that sign-in opens. Our site scores A+ on Qualys SSL Labs, securityheaders.com and Mozilla Observatory (live results).

We keep it working

What happens when Batappli changes? The tools work through the same screens you use.

Batappli is moving to a new interface with fewer windows and fewer steps (its site, 14 Nov 2026). The tools keep working through such updates because they use the pages you open yourself.

Cotlet watches the apps it serves and updates the Batappli server when its screens change. New Batappli features become available to the agent, which still sees only what your own user can see.

Cotlet never sees or stores your password. If Batappli signs you out, one click in the Cotlet console reopens the Cloud Browser so you can sign in again.

5 tools ask first

Approvals, undo and mistakes Nothing reaches a client or your books until you say so.

  1. 01 Find the client list_clients, or create_client for a new one.
  2. 02 Draft the quote create_quote saves it as a draft, sends nothing.
  3. 03 Show you the total Lines, VAT and total, in the chat.
  4. 04 Send after your OK share_quote emails it on your yes.
Fixing a Batappli write that went wrong
ActionHow to put it right
Draft quote or new clientEdit or delete it in Batappli; nobody was told
Deposit recorded, deposit invoice madeThe invoice keeps its number: cancel it with a credit note ("avoir")
Quote converted to an invoiceSame: a credit note in Batappli, then convert again
Payment recordedCorrect it before your next accounting export
Quote emailed or reminder sentAlready with your client: call or write to them

The 5 tools that send a quote, invoice, record money or remind a client ask first: by default you confirm each call, and you can switch that off per tool. The 7 read tools run at once, and so do create_client and create_quote, which reach no one.

MCP call
{
  "name": "create_quote",
  "arguments": {
    "client_id": "cl_4833",
    "lines": [
      {
        "description": "Chauffe-eau électrique 200 L",
        "quantity": 1,
        "unit": "U",
        "unit_price_ht": 620.75
      },
      {
        "description": "Main d'oeuvre, dépose et installation",
        "quantity": 3,
        "unit": "H",
        "unit_price_ht": 54.17
      }
    ],
    "vat_rate": 10
  }
}
REST
curl -X POST https://cotlet.dev/api/v1/batappli/clients/cl_4833/quotes \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"lines":[{"description":"Chauffe-eau électrique 200 L","quantity":1,"unit":"U","unit_price_ht":620.75},{"description":"Main d'\''oeuvre, dépose et installation","quantity":3,"unit":"H","unit_price_ht":54.17}],"vat_rate":10}'
Response
{
  "quote_id": "doc_9032",
  "number": "D-0412",
  "client": "Camille Roux",
  "total_ht": 783.26,
  "vat": 78.33,
  "total_ttc": 861.59,
  "status": "Draft"
}

The example drafts a water heater swap: one heater at 620.75 and three hours of labour at 54.17 make 783.26 before VAT, 861.59 with 10% VAT, saved as a draft and not sent. A cron job or n8n flow can make the same call over REST at /api/v1/batappli with the same key and price, in JSON. Failed calls are free.

Pay per call

How much does the Batappli MCP server cost?

About $20 a monthfor a plumbing and heating artisan with about twenty quotes a month, 3,520 credits. Your Batappli plan stays as it is.

Illustrative month, our assumption: successful calls for this workload
JobCallsCredits
New clients and draft quotes3 × 20600
Quotes checked and emailed2 × 20400
Deposits recorded on accepted quotes2 × 10200
Final invoices from finished jobs2 × 10200
Payments recorded on invoices2 × 15300
Unpaid check and reminders3 × 8240
Monday revenue and margin report2 × 480
Cloud Browser, 30 days1,500
Total202 calls3,520

The $29 pack covers a typical month for most owners. A busier firm with more quotes uses more calls.

  • Free 7-day trial, no card
  • 10 credits per successful call, MCP or REST
  • 50 credits a day for the Cloud Browser
  • Any Batappli en ligne plan works as it is

Credit packs are one-time purchases, not a subscription. The month above is an example built from our own assumptions, not measured customer usage.

Cotlet credit packs: price, credits and calls at 10 credits each
Credits Price, one time Calls at 10 credits Per 1,000 credits
5,000 $29 500 $5.80
15,000 $79 1,500 $5.27
32,000 $149 3,200 $4.66
60,000 $249 6,000 $4.15

Only successful calls use credits; failed calls and timeouts cost nothing. At a balance of 0 calls pause, never a surprise charge. Authenticate with the Authorization: Bearer header.

Other options

Batappli MCP server: other ways to connect What each route does for an artisan's quotes and invoices, and where it stops.

Other ways to work with Batappli, checked 14 Nov 2026
OptionWhat it doesWhere it stops
Batappli.iaProposes quote lines from your spoken or written description: 8 AI quotes a month on Batappli Devis (39 € excl. VAT), 16 on Artisan.Works inside one quote; sending, deposits, payments and reminders stay with you.
Zapier, Make, n8nNo Batappli app on Zapier or n8n, and none found on Make.Nothing to trigger or act on in Batappli.
Official APINone published; the vendor lists only the accounting export as an integration.Nothing to build on.
GitHub servers and CLIsNo Batappli repository on GitHub.Nothing to install.
Accounting export and ExcelEntries for Cegid, EBP, Quadra, Sage or ASCII; Excel import and export of documents.Files for your accountant: no quotes sent, no reminders.
Batappli MobileQuotes, intervention slips and client files on site.Installed versions only; made for your thumbs, not for an agent.
By handOpen each quote and invoice and click through.Only while you are at the screen.

Only Cotlet lets your agent do the daily Batappli work on every screen you use, reading and writing, from ChatGPT, Claude or any MCP client, with no API key from Batappli and on your current plan.

EU company, since 2019

Who runs Cotlet A company you can look up.

Cotlet belongs to Take Group sp. z o.o., a software company registered in Poland, EU (VAT PL6342984273) and trading since 2019. Bart Krawczyk (Co-founder, CTO) and Jake Slugocki (Co-founder, SEO, sales and marketing) founded it. Send questions about the Batappli tools to contact@cotlet.dev.

Batappli MCP server: questions

How do I get access?

Sign up free at https://cotlet.dev/signup?app=batappli, turn on Batappli under Integrations in the console and log in at https://batappli.app in your Cloud Browser. Then connect your AI agent and ask it which invoices are late. The trial needs no card.

Does Cotlet work with the installed version of Batappli?

No. Cotlet works in Batappli en ligne, the web version you open at batappli.app in a browser. The installed versions (Devis, Artisan, Entreprise) run on your own computer, and Batappli Mobile only extends them, so a Cloud Browser cannot reach them (Batappli, 19 Jun 2025).

Which Batappli plan do I need?

Any plan of Batappli en ligne with a login. Quotes, invoices, deposits, credit notes, situations and the accounting export are in Batappli Devis, at 39 EUR a month before VAT for one user. Stock, suppliers, site tracking, user rights and online payment with Stripe are in Batappli Artisan, at 79 EUR (batappli.fr/tarifs, checked 14 Nov 2026). The tools above need only the Devis features.

Is Cotlet the same as Batappli.ia?

No. Batappli.ia is Batappli's own assistant: inside a quote, you describe the work and it proposes lines. Cotlet gives your own AI agent access to the Batappli screens from outside, for the jobs around a quote such as deposits, reminders and reports. create_quote takes the lines your agent writes and does not call Batappli.ia.

Which Batappli user should I sign in with?

The user who writes your quotes and records payments. On Batappli Artisan, user rights limit what each user sees, so pick one who can open quotes, invoices and the unpaid list. The agent sees only what that user can see.

Is the MCP server different from the REST API?

Only in how it is called. Both carry the same 14 tools, inputs, answers, API key and price. Agents use MCP; scripts and n8n HTTP steps use REST.

Is Cotlet affiliated with Batappli?

No. Cotlet is independent and not affiliated with Batappli or SYSTEMLOG.

Hand your next Batappli quote to your agent.

Free 7-day trial with 2,000 credits, no card needed.