/
/
Get missing Stripe invoices into Rillet without recording one twice
For finance teams who want invoices raised in Stripe recreated in Rillet with the right customer and products, by asking their AI assistant.
On this page
Connector
Connect Stripe, pick your AI tool and paste the prompt.
The problem
Stripe invoices that never reached Rillet
Invoices raised in Stripe do not always reach Rillet, and recreating them by hand means matching the customer, mapping every line to a product and carrying service periods across. One loose match and you record an invoice twice or against the wrong customer.
Without PopdockAI
- Compare Stripe and Rillet invoice lists
- Match each customer by email or name
- Map every line to a Rillet product
- Retype service periods and risk duplicates
With PopdockAI
- Stripe invoices already in Rillet are dropped by exact number
- Customers and products are matched exactly, or listed as needing one
- You preview each invoice with lines and service periods
- You pick which to record, and each is read back
The prompt
Use this prompt
Copy it into any AI tool connected to PopdockAI. Swap the values in braces for your own.
**Objective:** Find the Stripe invoices created from {from-date} to {to-date} (default today) that do not exist in Rillet, and after the user confirms, record each one in Rillet as an external invoice recorded as {record-as}.
{record-as} must be ar-only (Rillet tracks the receivable and revenue is recognised elsewhere) or revenue-only (Rillet recognises the revenue and the receivable stays in Stripe). If it is anything else, explain the two options and stop.
**Step 1: Find the gap**
Call `stripe-get-invoice` with `created-date.from` = {from-date} and, if given, `created-date.to` = {to-date}. Keep only invoices with status open or paid. Call `rillet-get-invoices` (it takes no filters) and drop every Stripe invoice whose number already equals a Rillet invoice-number. Only exact number matches count; never skip or create an invoice on a fuzzy match.
**Step 2: Resolve the Rillet customer**
Call `rillet-get-customer-emails` and match the Stripe customer-email to email, ignoring case. If there is no email match, call `rillet-get-customers` and match the Stripe customer-name to name exactly, ignoring case. If there is no match or more than one, do not record the invoice: list it under Needs a customer in Rillet. Do not create customers.
**Step 3: Build the lines**
Call `stripe-get-invoice-item` with `invoice-id` = the Stripe invoice-id. For each line, call `stripe-get-product` with its `product-id` to get the product name, then find the Rillet product with exactly that name in `rillet-get-products` (no filters). If any line has no Rillet product, list the invoice under Needs a product in Rillet and skip it. Rillet takes at most three lines: when there are more, combine lines that share a Rillet product by summing their amounts and quantities; if there are still more than three, skip the invoice and say why.
**Step 4: Preview and confirm**
Show one table row per invoice to be recorded: Stripe number, Rillet customer, invoice date, due date, and each line's Rillet product, quantity, total, currency and service period. Ask the user to confirm. Write nothing until they say yes; they may confirm a subset.
**Step 5: Record**
For each confirmed invoice, one call at a time, call `rillet-add-invoice-ar-only` when {record-as} is ar-only, or `rillet-add-invoice-revenue-only` when it is revenue-only, with:
* external-system = Stripe, external-id = the Stripe invoice-id, external-url = the Stripe hosted-invoice-url
* invoice-number = the Stripe number, invoice-date = the Stripe created-date, due-date = the Stripe due-date
* customer-id = the Rillet customer-id from Step 2
* for each line: product-id (Rillet), quantity, total, currency in upper case, description, and revenue-start / revenue-end from the Stripe period-start / period-end
If a call fails, stop, report the error and list what was and was not recorded.
**Step 6: Confirm**
Call `rillet-get-invoices` again and check each recorded invoice-number is now present. Report recorded, skipped (with the reason) and failed.
**Rules & Guidelines:**
* `stripe-get-invoice`, `stripe-get-invoice-item` and `stripe-get-product` are on the stripe server and are read-only. Every other tool named here is on the rillet server.
* The only tools that may write are `rillet-add-invoice-ar-only` or `rillet-add-invoice-revenue-only`, whichever {record-as} names, and only after the Step 4 confirmation.
* Do not call `rillet-add-invoice`, `rillet-update-invoice`, `rillet-add-customer`, `rillet-add-product` or `rillet-add-invoice-payment`. Payments are recorded by the apply-stripe-payments prompt.
**Validation:**
* If every Stripe invoice already exists in Rillet, say so and stop.
* Stripe may return amounts in the smallest currency unit. If an invoice's line amounts do not add up to its total but do when divided by 100, divide by 100, and say so in the preview.
* If a tool cannot be found, name the server it belongs to (rillet or stripe) and stop.Who it's for
One answer, three teams that use it
Accounts receivable
Catch up on missing invoices
Find and record the Stripe invoices Rillet never received, with lines and periods intact.
Which Stripe invoices from October are missing in Rillet? Backfill them as receivables.
Revenue accountants
Keep service periods right
Service periods carry across, so revenue lands in the right months.
Backfill Stripe invoices from Q3 into Rillet as revenue, keeping the service periods.
Controllers
Record nothing twice
Exact matching only, and invoices without a clear customer or product are held back.
Show me the Stripe invoices from last month that would be backfilled to Rillet and any that need a customer or product.
How it works
What PopdockAI does when you ask
You give a date range and whether Rillet tracks the receivable or the revenue, and your AI assistant finds the missing Stripe invoices. Only the invoices you confirm are recorded.
01
Ask
You give a date range and whether Rillet tracks the receivable or the revenue.
02
Compare
It drops Stripe invoices whose number already exists in Rillet.
03
Confirm
You preview each invoice with its lines and service periods and pick which to record.
04
Record
It records each one as an external invoice and reads it back.
What PopdockAI provides
The tools behind the answer
Ready made tools for Stripe and one secure connection to your AI tool. No code, no exports.
stripe-get-invoice
rillet-get-invoices
rillet-get-customer-emails
rillet-get-customers
stripe-get-invoice-item
stripe-get-product
rillet-get-products
rillet-add-invoice-ar-only
rillet-add-invoice-revenue-only
This report is built from Get data tools only. PopdockAI applies the row, field and parameter rules your admin sets, and every query is written to the audit trail.
The outcome
Missing invoices in Rillet, none recorded twice
Related use cases
More ways to put this data to work
One prompt template with infinite possibilities.
Your AI assistant adapts its approach, tone, and capabilities to match each unique context while you maintain a single, manageable workflow.
Join forward-thinking companies that are transforming their operations with intelligent, secure AI automation.

.webp)
