- Brand
- Billabex
- Category
- Finance
- Primary Subcategory
- Invoicing, Billing & Subscriptions
Integration details
Description
Billabex is an AI-powered accounts receivable and invoice collection platform that helps finance teams manage customer payment follow-up directly from ChatGPT. Review customer accounts, contacts, invoices, credit notes, credit allocations, outstanding balances, overdue receivables, incoming emails, outgoing emails, payment communications, and account tasks in one place. Identify unpaid invoices and silent customers, inspect complete account and communication histories, monitor collection priorities, update customer and billing records, manage contacts, pause or resume automated payment reminders, respond to tasks raised by the AI agent, prepare scheduled communications, and send personalized payment reminder emails. Billabex centralizes receivables management, customer communication, invoice follow-up, credit control, and debt collection workflows so businesses can reduce late payments, improve cash flow visibility, save time on repetitive collection work, and maintain professional customer relationships.
- Integration type
- Plugin
- Verification status
- Not applicable
- Platform
- ChatGPT
- Primary Subcategory
- Invoicing, Billing & Subscriptions
- Secondary Subcategories
- None listed
- Brand
- Billabex
- Access
- Account required
- First tracked
- 2026-07-18
- Tool count
- 93
- Market
- US
The Primary Subcategory used for this profile’s headline score.
Other Subcategories where the Integration is listed.
Your score is coming
ChatGPT now suggests Plugins on its own when they match a user's request.Your Plugin Discovery Score measures how often yours appears, and it will show here as soon as it’s ready.
What discovery looks like

Get alerts for Billabex
Get updates when Billabex’s Discoverability Score or category rank changes.
Competing in ChatGPT Invoicing, Billing & Subscriptions
View Category93 tools agents can invoke
Record a boolean acknowledgement on an Unknown task after reading get-account-task. Either boolean records the reply; the workflow acknowledges it and closes the task. This tool does not resolve other task types.
acknowledge-unknown-account-task
Attach one or more existing labels to a customer account. Use list-tags to get the label identifiers, and create-tag when the label does not exist yet. Attaching a label the account already has changes nothing.
add-account-tags
Add a text-based user interaction to an account task. Use this for NeedUserInput. AskNextAction rejects text without recording an interaction or changing task status; use decide-account-task-next-action, which records a Structured message with schema "AskNextAction", schemaVersion 1, and value.choice set to one of: take-over, resume, add-contact. The add-contact choice additionally requires value.contact.email and value.contact.language; value.contact.fullName is optional. The resume choice accepts optional value.instructions (at most 2000 characters) to prepare the next email for explicit approval before reminders resume.
add-account-task-text-interaction
Apply a credit amount from a credit note to an invoice, reducing the outstanding balance. This creates a link between the credit note and invoice.
apply-credit-allocation
Withdraw a commitment standing on an account, or all of them when promiseId is left out. Nothing recovers it; ask the user before calling this. Withdrawing when none stands is not an error.
cancel-account-payment-promise
Cancel an account task. This marks the task as canceled and it will no longer require user input. A payment review (a task whose `paymentDeclarationId` is set) cannot be canceled: record the user decision with resolve-account-payment-declaration instead, which closes the review. A dispute handover (idempotencyKey starting with dunning-dispute:) cannot be canceled either: close it with close-account-task and a dispute decision. Canceling a recipient review (idempotencyKey dunning-recipient-review) pauses dunning on the account instead of resuming it: no reminder goes to unconfirmed contacts, and resuming asks for the selection again if it is still needed. Returns where the task stands; read get-account-task for the full task.
cancel-account-task
Check French collective proceedings and propose debtor identity candidates. Supply a SIREN/SIRET only when confirmed from a debtor document or customer record. Works for connector-managed accounts. Persists the check and may pause reminders or open a task; preserves independent legal and manual pauses.
check-account-bodacc
Close an ordinary NeedUserInput task only on an explicit human decision. Tasks referencing incoming emails require resolution; omitting it returns closure-not-allowed. Read get-account-task first, then supply resolution: handled-elsewhere, no-longer-needed or continue-follow-up, a reason, and waivedRequirementIds matching all current requirement IDs (null for unknown requirements, [] for an empty contract). These are explicit waivers, never proof of documents received or payments verified. A dispute handover (idempotencyKey starting with dunning-dispute:) takes only dispute-founded, dispute-unfounded or dispute-handled, with the reason the user gave: the next reminders restate that decision, and the task cannot be canceled. The decision, receipt and closure are saved together without a model or email. Independent pauses, other disputes and other tasks remain unchanged; read get-account-dunning-status afterwards. A payment review requires resolve-account-payment-declaration; recipient decisions, other handovers, resume confirmations and prepared email drafts use their dedicated action. A reply being processed cannot be closed. An identical resolution retry returns the closed task. Returns where the task stands; read get-account-task for the full task.
close-account-task
Answer a recipient review or recipient routing task (dunning-recipient-review or dunning-recipient-routing). Read current account contacts first. The server checks reviewed IDs and emails, requires selected contacts to be enabled with valid addresses, disables unselected reviewed contacts and closes the task. Set confirmLargeSelection to true only after user confirmation when selecting more than 5 recipients.
confirm-account-task-recipients
Answer the reminder resume confirmation task. resume authorizes resuming automatic reminders; keep_paused leaves them paused. The workflow applies the decision and closes the task. Use only the explicit user decision after reading get-account-task.
confirm-account-task-resume
Create a new customer account for an organization. Requires full account details including billing address and currency. Returns the new account id and identity; read get-account for the full account.
create-account
Add a new contact to a customer account. Contacts are external people who can receive dunning emails. One of fullName or email is required; an email address alone is enough.
create-contact
Create a new credit note with an attached document. The file should be provided as base64-encoded content. Supported formats: PDF, PNG, JPEG, WebP. Max size: 10MB. Returns the credit note id, number and the fields this change affects; read get-credit-note for the full credit note.
create-credit-note
Legacy base64 import for programmatic clients. For ChatGPT attachments use create-invoice-from-file; if the client cannot transfer files use prepare-invoice-upload. Never ask the user to encode a file. The file must be provided as base64-encoded data. Supported formats: PDF, PNG, JPEG, WebP. Max size: 10MB. Returns the invoice id, number and the fields this change affects; read get-invoice for the full invoice.
create-invoice
Create an invoice from a file attached in ChatGPT, without base64. Confirm the account, invoice number, dates and amounts from the document. The account must already exist: find it with list-accounts; if none matches, propose create-account with the customer details from the invoice and wait for the user to confirm. PDF, PNG, JPEG, WebP, maximum 10 MB. Generate importId once and reuse it for retries. If file transfer is unavailable, call prepare-invoice-upload with the SAME invoice details and importId. Never invent a download URL or encode the PDF in the conversation. Returns invoiceId for get-invoice.
create-invoice-from-file
Create or update a contact of a customer account. Without contactId, the contact is matched on email or name: an existing one is updated, otherwise one is created, which requires fullName or email (an email address alone is enough); calling again with the same data has the same effect. With contactId (from list-contacts), that contact is updated: send null to clear fullName (the contact must keep an email address), email or jobTitle. With contactId and enabled, and no other field, the contact is enabled or disabled: a disabled contact is never proactively contacted by the AI agent (no dunning outreach), and re-enabling one is a human/client decision only.
upsert-contact
Create a new label owned by an organization. Check list-tags first, an equivalent label may already exist.
create-tag
Approve or refuse the contact changes proposed by an ApproveContactChange task. Read its proposed operations first. Approval applies selected additions, updates or removals; omitting selectedOperations approves every proposed operation except an addition flagged DomainOutsideAccount, which must be listed explicitly to be applied. The workflow closes the task.
decide-account-task-contact-change
Answer an ApproveEligibility task after reading get-account-task. True authorizes adding the incoming sender as a contact; false declines. The workflow records the answer and closes the task.
decide-account-task-eligibility
Send or discard the email currently awaiting user approval on a NeedUserInput or AskNextAction task. Read get-account-task and the full draft first. communicationId must match pendingCommunicationId. On AskNextAction, send also resumes reminders; discard keeps them paused. Processing is asynchronous: read the task receipt and communication afterwards to confirm the result. awaitingApproval=false alone does not prove arming or delivery. Never infer approval from free text.
decide-account-task-email-draft
Answer an ApproveFirstOutreach task. Approval enables the first automatic payment reminder; refusal pauses reminders. The workflow closes the task. Use only the explicit user decision.
decide-account-task-first-outreach
Answer an AskNextAction task after reading get-account-task. take-over keeps reminders off; resume without instructions restarts them with current contacts. Optional resume instructions prepare the next email for review and keep reminders paused; read pendingCommunicationId and the full draft, then use decide-account-task-email-draft to send and resume or discard and stay paused. add-contact selects the supplied contact only and resumes reminders.
decide-account-task-next-action
Answer an ApprovePaymentArrangement task. grant applies the approved installments to the selected invoices within the task scope; refuse declines the proposal; keep_existing preserves the current schedules. The workflow validates scope and amounts, lifts only this request's payment-plan pause and closes the task. It sends no email directly. Read the task and current invoices first.
decide-account-task-payment-arrangement
Permanently delete a customer account and all associated data. This action cannot be undone. Accounts linked to external sources may have restrictions.
delete-account
Remove a contact from a customer account.
delete-contact
Permanently delete a credit note.
delete-credit-note
Permanently delete an invoice. This action cannot be undone. The invoice must not be linked to a managed account source.
delete-invoice
Delete a label of an organization. It is removed from every account carrying it, which cannot be undone: confirm with the user first.
delete-tag
Buy a contact's details: 1 credit for an email address, 2 as soon as a phone number is found, 0 when nothing is found. SPENDS THE ORGANIZATION'S CREDITS, so confirm with the user before calling it. The search must be anchored on the debtor: either a LinkedIn profile URL, or a company domain on the account. Without one of the two it is refused before any spend, because a name alone matches a namesake company anywhere in the world. Returns as soon as the provider accepted; the contact appears on the account about a minute later, on its own, and nothing has to be polled.
enrich-contact
Export invoices, or credit notes with documentType "creditNotes", to an Excel (.xlsx) file the user can download: every document matching the filters, not one page, with typed amounts and dates, one row per document. Returns a download link valid 15 minutes; hand it to the user rather than reading the file. Takes the same filters as list-invoices, or as list-credit-notes for credit notes. Refused above 20000 documents: narrow the filters. Invoice filterable fields: `number` (contains, startsWith, equals, isAnyOf: several document numbers in one condition); `accountName` (contains, startsWith, equals); `tags` (containsAny, containsAll, containsNone, isEmpty, isNotEmpty: the labels carried by the account this document belongs to); `status` (is, isNot, isAnyOf: Issued, Paid, Overdue); `dueDate` (on, before, after, between); `paymentSchedule` (isTrue, isFalse); `paymentMethod` (is, isNot, isAnyOf, isEmpty, isNotEmpty); `totalAmount`, `remainingBalance` (equals, greaterThan, lessThan, between); `channel` (is, isNot, isAnyOf); `connectionId` (is, isAnyOf, isEmpty, isNotEmpty: the connection that issued the invoice; empty for a manual, API or MCP invoice); `sourceId` (is, isAnyOf, isEmpty, isNotEmpty: case-sensitive, the caller-provided identifier). Credit note filterable fields: `number` (contains, startsWith, equals, isAnyOf: several document numbers in one condition); `accountName` (contains, startsWith, equals); `tags` (containsAny, containsAll, containsNone, isEmpty, isNotEmpty: the labels carried by the account this document belongs to); `status` (is, isNot, isAnyOf: Issued, PartiallySettled, Settled); `issuedDate` (on, before, after, between); `paymentMethod` (is, isNot, isAnyOf, isEmpty, isNotEmpty); `totalAmount`, `remainingAmount` (equals, greaterThan, lessThan, between); `channel` (is, isNot, isAnyOf); `sourceId` (is, isAnyOf, isEmpty, isNotEmpty: case-sensitive, the caller-provided identifier).
export-invoices
Get days sales outstanding for complete calendar months. Historical ECB rates, with blended rates for unsupported pairs. Rate errors never return partial totals.
get-dso-history
Retrieve detailed information about a specific customer account including contacts and source information. For user-facing responses, prefer account name/summary fields and use IDs only for follow-up tool calls.
get-account
Read the payment follow-up status of a customer account: whether it is suspended and why, whether a task or a threshold is holding messages back, when the first message becomes possible, and the commitments to pay standing on it (`paymentPromises`, earliest first, one per date and each on its own invoices; `paymentPromise` is the earliest, null when none does; a promise changes no accounting, it is what the next follow-up must not contradict). Answer questions about a silent account with this: `silenceReason` names the single cause, ranked the same way the send decision ranks it. Also returns the cached situationSummary in English, French and Spanish (Spanish is null until regenerated). Read-only, it changes nothing on the account.
get-account-dunning-status
Explain a customer account balance and list every past and future invoice installment, including covered installments and the amount still due on each one.
get-account-financial-overview
Read the link to the customer's document page for an account: the invoices and credit notes currently followed up on, plus those settled over the last 12 months, ready to download. Returns portalLink null when no link was created yet; reading never creates one.
get-account-portal-link
Get detailed information about a specific account task including its type, status, and required input.
get-account-task
Get gross outstanding amounts by currency and aging bucket. Unallocated credit notes are reported apart in unallocatedCredit, not deducted from any bucket: the buckets minus unallocatedCredit is the outstanding balance. With receivablesAt, also returns what invoices still owed before that instant, for a trend. With buckets, groupBy, filters or currencyCode, also returns analyses: per currency, the requested split, the groups of an account dimension (by tag an account counts in each tag), the concentration on the ten largest customers, the accounts to act on first, and recoveryStatuses. Why an overdue installment is not paid, one status each, the first that applies in this order: Procedure (legal procedure or collective proceeding), Dispute, PaymentPlan, CustomerCommitment (a payment promise still awaited, or a suspension: payment declared, date asked by the customer, deadline communicated, negotiation, correction announced), ContactUnreachable (no valid contact, bounced email, no deliverable recipient, channels exhausted), OtherPause (any other pause, or an invoice excluded from reminders), FollowUp (nothing holds it). Filterable fields: `accountName` (contains, startsWith, equals); `tags` (containsAny, containsAll, containsNone, isEmpty, isNotEmpty); `dunningPaused` (isTrue, isFalse); `paymentMethod` (is, isNot, isAnyOf, isEmpty, isNotEmpty); `collectiveProceeding` (is, isNot, isAnyOf: Yes, No, Unknown); `source` (is, isNot, isAnyOf, isEmpty, isNotEmpty); `notDue`, `d0_30`, `d31_60`, `d61_90`, `d90Plus`, `unallocatedCredit`, `totalOutstanding`, `overdueOutstanding`, `overdueRate` (equals, greaterThan, lessThan, between); `accountType` (is, isNot, isAnyOf: Professional, Consumer, Unknown); `bodaccStatus` (is, isNot, isAnyOf, isEmpty, isNotEmpty: Unresolved, Clear, Receivership, Liquidation, Safeguard, Dissolved); `hasPendingPromise` (isTrue, isFalse); `recoveryStatus` (is, isNot, isAnyOf: Procedure, Dispute, PaymentPlan, CustomerCommitment, ContactUnreachable, OtherPause, FollowUp; per installment, credit notes then left out).
get-aging-balance
Read one communication with its content: a customer email, a reminder or agent email, or a paid SMS or letter. Pass the id and type of a list-communications row. Only the section matching type is set. An outgoing email with awaitingApproval true is only prepared; use its taskId and the DecideOutgoingEmailDraft task interaction to send or discard it. A letter carries a short-lived pdfUrl for its archived PDF when available; read again to renew it.
get-communication
Retrieve detailed information about a specific contact.
get-contact
Get detailed information about a specific credit note by ID, or by organization/account ID and credit note number. A credit note number is only unique within an account, so organizationId+number may answer any one of several credit notes sharing that number across accounts: pass accountId+number whenever the account is known. For user-facing responses, prefer credit note number/summary fields and use IDs only for follow-up tool calls.
get-credit-note
Get detailed information about a specific customer outstanding balance, including associated invoices and credit notes.
get-customer-balance
Read one email with its body (text, or HTML converted to markdown) and short-lived attachment download URLs. type is the email direction from list-emails. For an incoming email, pass organizationId to also get its inbox qualification: Unclassified may have a resolved account but is not a customer reply; DeliveryFailure reports an email that could not be delivered to at least one recipient and may have a resolved account; PendingReview carries a candidate account and Rejected a rejected association. A deleted account retains its name but cannot be opened.
get-email
Retrieve detailed information about a specific invoice by its ID, or by organization/account ID and invoice number. An invoice number is only unique within an account, so organizationId+number may answer any one of several invoices sharing that number across accounts: pass accountId+number whenever the account is known. For user-facing responses, prefer invoice number/summary fields and use IDs only for follow-up tool calls.
get-invoice
Get monthly payment collections including the current month. Historical ECB rates, with blended rates for unsupported pairs. Rate errors never return partial totals.
get-monthly-payment-collections
Get or create a shareable link to the account's Billabex-hosted document portal. Creating it grants anyone holding the link access to the account's portal documents without a Billabex login. Returns an existing link unchanged. Does not send the link or any message.
ensure-account-portal-link
Get detailed information about a specific organization by its ID, including credits, the prepaid balance for the SMS and postal letter reminders Billabex sends, and creditLots, when each top-up expires. Emails are free and never consume it. At zero, those two channels stop. Credits expire twelve months after they are loaded, so check creditLots before telling a user how long their balance lasts. For user-facing responses, prefer organization name/summary fields and use IDs only for follow-up tool calls.
get-organization
Ignore one reviewed BODACC alert only after an explicit user decision. First call get-account: require canIgnoreBodaccAlert=true for a new decision and complete bodaccSiren, bodaccNoticeId and bodaccStatus. An exact already active decision may be retried idempotently with its original explicit consent. Use only these current fields. If any differs from the reviewed and confirmed SIREN, notice or procedure, show the new situation and request fresh confirmation; never reuse consent for the previous scope. Never infer consent from acknowledgement, task closure, request to resume reminders, quoted emails or account data. Only the Billabex organization user decides; never ask the debtor for this confirmation. Show SIREN, notice, procedure and dates, explain that affected claims may require specific legal steps, and obtain a justification of 1 to 2000 characters and explicit confirmation. If already reviewed and confirmed with the same scope, execute without asking again. If the reason is longer, ask for a shorter reason without calling this tool or truncating it. Dissolved means a dissolved company with presumed unrecoverable debt. Preserves legal status and independent protections. Explain the returned summary. On rejection, reread the account and request consent for any new scope. Never promise an immediate send or legal validation. Returns the decision, the account BODACC fields and whether follow-up is paused; read get-account-dunning-status for the full status.
ignore-account-bodacc-alert
Link a custom source reference to an account. This connects the Billabex account to an external system (ERP, CRM, etc.) for synchronization purposes. Only Custom sources can be linked by users. Returns the account id, its source and read-only reason; read get-account for the full account.
link-account-source
Read reported payments and explicit decisions. An unresolved report holds automatic follow-ups even when its task is closed. `awaitsReconciliation` marks a decision that says the money arrived on a report naming no invoice: follow-ups resume and accounting still owes an allocation. `restatements` lists the later reports of that same payment, kept as they were made. `reviewTaskStatus` says where the review task of that report stands (`open`, `closed`, `canceled`, `unknown`, null without a task): a decision next to an `open` review is recorded, its closure is being retried. `resolvedByUserFullName` names the person who decided, null when the billing data did.
list-account-payment-declarations
List account tasks of an organization, with server-side filtering, sorting and pagination. Tasks are created by the Billabex agent when it needs information from the user (approving eligibility, selecting a next action, providing contacts). For user-facing responses, prefer the task title/summary fields and use IDs only for follow-up tool calls. Filterable fields and their operators: title (contains, startsWith, equals), accountName (contains, startsWith, equals), status (is, isNot, isAnyOf: Open, InProgress, UserActionRequired, Closed, Canceled, Pending), type (is, isNot, isAnyOf: ApproveEligibility, ApproveContactChange, ApprovePaymentArrangement, NeedContacts, AskNextAction, ApproveFirstOutreach, NeedUserInput, PaymentScheduleInvalidated, Notice, Unknown), tags (containsAny, containsAll, containsNone, isEmpty, isNotEmpty), balance (equals, greaterThan, lessThan, between, isEmpty, isNotEmpty), createdAt (on, before, after, between), updatedAt (on, before, after, between, isEmpty, isNotEmpty). Date values are written YYYY-MM-DD. An unknown field or an operator the field does not accept is refused, never ignored. An "endCursor" belongs to the exact set of filters and sort it was issued for: pass it back unchanged, and read the list again from its first page whenever a filter or the sort changes. Contract change: this tool used to take a required accountId, return every active task of that account in one shot and never paginate. It now takes organizationId, returns tasks of any status by default (filter on status to narrow), and pages. Its "type" argument became a "type" filter condition, and accountId became optional.
list-account-tasks
Billabex ChatGPT Plugin FAQ
How the directory, categories and Discoverability Score work.
Read the methodologyHow do I improve Billabex's ChatGPT Plugin discoverability?
The levers are the listing surface agents actually read: names, descriptions, keywords, tool metadata, and registry health. Which lever matters depends on where discovery breaks, which is what continuous measurement shows.
What are Billabex alternatives on ChatGPT?
As of 2026-11-02, Billabex competes with Apollo Invoicing, AsesorFacturas, billr, Billwise Invoice Maker, Chargebee (AU Region), Chargebee (EU Region), Chargebee (US Region), CySo Invoicing and 26 more in ChatGPT Invoicing, Billing & Subscriptions, ranked by public Discoverability Score.
Where is this profile measured?
This profile uses the geography attached to the latest public registry snapshot: US. Locale tags are intentionally omitted.