Xero Invoice Sync
Keep Xero invoices, contacts, and payment state aligned with what the app believes.
What it adds
Alignment between app transactions and invoices in the connected accounting organisation, covering contacts, tax rates, and payment status.
What your agent is told to do
5
What your agent is told to do
5-
1
Make the operator choose the organisation explicitly when connecting and store that choice, because one login commonly reaches several organisations and the first one returned is not necessarily the right one.
-
2
Resolve the contact before the invoice, matching on a stored external reference first and creating a contact only when nothing matches with confidence.
-
3
Read tax rates and account codes from the connected organisation rather than assuming any standard set, and revalidate a saved mapping before each send.
-
4
Treat approval as the boundary of ownership. The app may create and amend a draft, but once an invoice is approved or paid the ledger owns it; do not let the app rewrite an approved invoice.
-
5
Pull payment, credit note, and void status back onto the app record so the app's view of what is outstanding matches the ledger's. QuickBooks Invoice Creation is the sibling for a different ledger; share the matching and queueing path rather than writing a second one.
Edge cases it handles
8
Edge cases it handles
8- One login can reach several organisations. If the connection does not pin one, invoices eventually land in the wrong company's books, which is not something an accountant can undo quickly.
- Matching contacts on name alone joins unrelated businesses. Match on a stored reference, and treat a near match as something to confirm rather than something to assume.
- An invoice moves through draft, submitted, approved, paid, voided, and credited, and most of those transitions are one-way. Model the whole lifecycle rather than a paid flag.
- Tax treatment and currency rules belong to the organisation's configuration, not to the app. Send the codes the organisation defines and let it compute what it computes.
- Once an invoice is approved, editing it from the app either fails or corrupts a filed return. After approval the app raises a credit note or a new invoice; it does not rewrite the original.
- Access tokens for this kind of connection expire quickly and the refresh token may itself rotate on use. Persist the new refresh token atomically, because losing it forces the operator to reconnect by hand.
- Rate limits are enforced per organisation and per application. Queue sends and back off when refused, and never place an accounting call inside a user-facing request.
- When the ledger is unreachable, show the invoice as pending with the reason and the time of the last attempt. A silent failure is discovered at the end of the quarter.
Definition of done
9
Definition of done
9- The connected organisation is chosen explicitly at setup and every request is scoped to it.
- Contacts are matched by stored reference before any new contact is created.
- Draft, approved, paid, voided, and credited invoices are each represented distinctly in the app.
- Approved invoices are read-only from the app, and corrections are made by credit note or new invoice.
- Token refresh, including a rotating refresh token, survives a restart with no operator action.
- Payment and credit status flows back so the app's outstanding balance matches the ledger's.
- Rate-limited and unreachable states are visible with a reason and a last-attempt time.
- The feature matches the existing design system.
- No existing functionality is broken.
Related features
Shopify Order Import
Shopify Order Import
Import Shopify orders into the app with money, fulfilment, and later edits accurately kept.
What it does
A resumable import of the connected store's orders, mirroring line items, discounts, taxes, and fulfilment state locally.
How it works
- 1 Separate the initial backfill from the ongoing feed. The backfill walks history in a stable order behind a resumable cursor; the feed applies live updates as they arrive.
- 2 Key every imported order on the shop identifier together with the store's own order identifier, so re-running the import updates existing rows instead of duplicating them.
- 3 Store money as an exact decimal with its currency alongside it, and keep both the shop currency and the presented currency where they differ. Do not convert to a single display currency on the way in, because the original amounts cannot be recovered afterwards.
Copy the prompt
No account needed
Add this feature to my app:
https://addthisfeature.com/x/shopify-order-import
Shopify Customer Sync
Shopify Customer Sync
Keep Shopify customers current from app users without crossing stores or resetting consent.
What it does
A sync that creates or updates a customer record in the connected store whenever an app user's details or consent change.
How it works
- 1 Find the app events that should reach the store — account creation, profile edit, address change, consent change — and sync from those events rather than sweeping every user on a timer.
- 2 Scope every request, every lookup, and every stored identifier to one connected shop. Treat the shop as part of the customer's identity, not as ambient configuration.
- 3 Store the provider's customer identifier against the app user per shop and match on it first, falling back to a normalized email address only when no identifier has been recorded yet.
Copy the prompt
No account needed
Add this feature to my app:
https://addthisfeature.com/x/shopify-customer-sync
Paddle Subscription Checkout
Paddle Subscription Checkout
Sell subscriptions through Paddle with entitlements granted only by verified events.
What it does
A Paddle-backed subscription purchase and lifecycle flow where local access follows verified server events and prices stay under server control.
How it works
- 1 Hold the catalogue mapping on the server: which local plan corresponds to which provider offering, at which price and currency. The client passes a plan identifier and nothing about money.
- 2 Carry an account or workspace reference into the checkout so the subscription that comes back can be attached to the right tenant without matching on email address.
- 3 Grant access only from verified server-side events, and store the event identifier so a retried delivery changes nothing a second time.
Copy the prompt
No account needed
Add this feature to my app:
https://addthisfeature.com/x/paddle-subscription-checkout
How it works
-
1
Copy the link
Grab the Markdown instruction URL for this feature.
-
2
Give it to your AI
Paste it into Claude Code, Cursor, v0, Lovable — whatever you build with.
-
3
It inspects, then implements
Your agent reads your existing app first, then adds the feature to fit it.
Works with your stack
These instructions are written to adapt. They tell the agent to detect your framework, match your existing design system, and reuse what you already have — rather than assuming a particular stack.
Need it tighter than that? Customize the feature and tell it exactly what you're running.