list-invoices
List invoices with the account payment method (paginated).
Debt-collection workflows for an assistant, with reads and writes split by OAuth scope and the whole tool catalogue readable before you connect.
LABSCO SUMMARY
The catalogue at /mcp/tools answers without a token, so you can check what mcp:read and mcp:write would open up before an OAuth flow starts, and every tool carries annotations such as readOnlyHint. Watch the consent step: a client that asks for no scope gets both read and write. There is no shared sandbox, so rehearse in an organization of your own, where follow-ups can be paused per account. For a product that chases customers for money, that rehearsal is not optional.
Billabex's MCP endpoint for their receivables product, at https://next.billabex.com/mcp.
Tools across the collection workflow, each carrying annotations such as readOnlyHint so a client can tell reads from writes before calling. The full current list, with schemas and scopes, is public at GET /mcp/tools and needs no credential.
OAuth 2.1 with PKCE and standards-based discovery. If the client asks for no scope, consent covers both mcp:read and mcp:write. There is no shared sandbox, so testing needs an organization of your own.
Paste a URL, then authorize — add the endpoint to your client, then approve the OAuth consent screen
USE CASES
Start with mcp:read consent and query the receivables state before granting anything more.
Fetch the public catalogue at /mcp/tools, which lists every tool with its schema and the scope it needs, without a token.
There is no shared sandbox, so test in an organization of your own, pause follow-ups on the accounts you use, and preview a message's price before sending it.
Listed in project docs. Your client may show a different list.
list-invoicesList invoices with the account payment method (paginated).
export-invoicesExport every filtered invoice to .xlsx : returns a download link valid for 15 minutes.
get-aging-balanceNet aging balance totals per currency.
list-aging-balance-by-accountNet breakdown per account and per currency, paginated.
get-invoiceGet invoice by ID, or by number within an account or an org.
create-invoiceCreate invoice with base64 file upload and optional sourceId .
update-invoice-paid-amountSet the total paid on an invoice, with expectedPaidAmount (the amount read) to refuse a conflict.
update-invoice-payment-scheduleReplace or remove an invoice payment schedule.
block-invoice-dunningExclude one invoice from reminders; it stays due, the account keeps going.
unblock-invoice-dunningPut an excluded invoice back into reminders.
update-invoice-due-dateCorrect the due date of an already issued invoice.
delete-invoiceDelete an invoice.
list-accountsList accounts with type, payment method and external source ID.
get-accountGet account type, details and contacts.
get-account-financial-overviewExplain the account balance and list every invoice installment.
create-accountCreate an account with an optional type and payment method.
update-accountUpdate account type, name, currency, address or payment method.
delete-accountDelete a customer account.
list-contactsList contacts on an account.
get-contactGet a specific contact.
create-contactAdd a contact to an account.
update-contactUpdate a contact.
delete-contactRemove a contact.
upsert-contactCreate or update contact by email/name match.
set-contact-enabledEnable or disable a contact on an account.
list-credit-notesList credit notes with the account payment method (paginated).
get-credit-noteGet credit note details, by ID or by number.
create-credit-noteCreate a credit note, with an optional sourceId .
update-credit-note-refunded-amountRecord a partial or full cash refund.
delete-credit-noteDelete a credit note.
apply-credit-allocationApply credit from a credit note to an invoice.
remove-credit-allocationRemove a credit allocation.
add-account-tagsAttach existing labels to an account.
remove-account-tagDetach a label from an account.
link-account-sourceLink an external source to an account.
update-account-sourceUpdate account source last-sync timestamp.
unlink-account-sourceUnlink an external source.
check-account-bodaccCheck French collective proceedings and propose SIREN candidates.
get-account-portal-linkRead the customer’s document page link of an account.
ensure-account-portal-linkGet or create that link; never replaces an existing one.
regenerate-account-portal-linkReplace that link; every previous copy stops working.
list-customer-balancesList customer outstanding balances (paginated).
get-customer-balanceGet balance details with invoices/credit notes.
list-communicationsList incoming and outgoing emails at once, filterable server-side.
list-silent-accountsList accounts emailed at least once that have never replied.
list-outgoing-communicationsList outgoing reminder emails (paginated).
get-outgoing-communicationGet outgoing communication details.
list-outgoing-communications-by-accountList outgoing communications for an account.
update-outgoing-communicationUpdate a scheduled outgoing email.
send-outgoing-communicationSend an email immediately on behalf of the agent, to free-form recipients.
preview-outgoing-messagePreview and price an SMS or postal reminder without returning a PDF.
send-outgoing-messageSend a paid message with a required idempotency key.
get-outgoing-messageGet a sent SMS or postal reminder and its delivery state.
refresh-outgoing-message-trackingRefresh a letter’s postal history and receipt, without sending or credits.
preview-outgoing-letterDeprecated alias for postal previews.
send-outgoing-letterDeprecated alias for postal sends.
list-incoming-communicationsList incoming (reply) communications.
get-incoming-communicationGet incoming communication details.
list-incoming-communications-by-accountList incoming communications for an account.
get-account-dunning-statusRead whether an account is being chased, and the one reason it is not.
pause-account-dunningSuspend reminders with a fact reason, or until a date for a dated wait.
resume-account-dunningLift human-resumable pauses and return any protections that remain.
withdraw-account-payment-date-requestTake back the instruction to ask the debtor for a payment date.
list-emailsList all emails (incoming + outgoing).
list-incoming-emailsList incoming emails (paginated).
get-incoming-emailGet incoming email with simplified body.
list-outgoing-emailsList outgoing emails (paginated).
get-outgoing-emailGet outgoing email with simplified body.
list-organizationsList organizations for the user, with their credits.
get-organizationGet organization details, including the credit balance.
update-organizationUpdate organization name or email domain.
update-organization-settingsUpdate reminder delays and the reminder threshold.
set-organization-logoSet or remove the organization logo (base64 image).
list-organization-membersList members and their profile picture metadata.
remove-organization-memberRemove a member from an organization.
set-my-avatarSet or replace the authenticated user’s profile picture.
remove-my-avatarRemove the authenticated user’s profile picture.
get-my-notification-preferencesRead the authenticated user’s notification preferences.
set-my-notification-preferencesUpdate digest frequency or newsletter subscription.
create-organization-invitationInvite a user. Pending invitations expire after 7 days.
cancel-organization-invitationCancel a pending invitation.
list-tagsList the organization’s labels plus the standard ones.
create-tagCreate a label owned by the organization.
list-account-tasksSearch the organization’s tasks (paginated).
get-account-taskGet task details and required input format.
cancel-account-taskCancel an account task, with an optional reason . Refused on a payment check.
close-account-taskEnd a task dealt with elsewhere, without a model or an email. Only a NeedUserInput asking for information.
set-pending-account-taskSet an account task aside, with an optional pendingUntil date it should come back. Without one it comes back after 30 days.
add-account-task-text-interactionAdd a text response to a task.
decide-account-task-eligibilityDecide contact eligibility.
decide-account-task-contact-changeApprove or refuse proposed contact changes.
decide-account-task-first-outreachAuthorize or refuse first outreach.
provide-account-task-contactProvide the requested contact.
decide-account-task-next-actionChoose the next action.
decide-account-task-payment-arrangementGrant, refuse or keep a payment arrangement.
decide-account-task-email-draftSend or discard the pending draft.
confirm-account-task-recipientsConfirm reminder recipients.
confirm-account-task-resumeConfirm resume or keep reminders paused.
acknowledge-unknown-account-taskAcknowledge an Unknown task.
BEFORE YOU INSTALL
99 tools named in the project's documentation. Each tool states its scope: reads take mcp:read, writes take mcp:write. SMS and postal reminders (send-outgoing-message) and contact searches spend your prepaid Billabex credits. Emails are free.
INSTALLATION
Add the endpoint to your client, then approve the OAuth consent screen.
https://next.billabex.com/mcpAdd https://next.billabex.com/mcp to your client as a remote (Streamable HTTP) MCP server — Claude Desktop, a compatible IDE, or your own agent. There is no key to paste.
On first connection the server answers 401 and your client starts the OAuth 2.1 flow with PKCE: sign in with your Billabex account and approve the consent screen (mcp:read for reads, mcp:write for writes — a client that asks for no scope gets both).
Check the connection by asking the assistant for your overdue invoices.