Card Receipt Forwarding
What this does
Watches for receipt emails from a known set of recurring corporate-card vendors, forwards each
one to the card/AP system, and keeps those same vendors excluded from invoice processing so the
charge is not booked twice. A receipt from a vendor on the known list is forwarded. A receipt
from a vendor NOT on the list is flagged for a human to review, never forwarded blindly and never
quietly added to the list.
This is one piece of an AP automation set. It runs alongside two sibling skills that stay
separate: ap-invoice-processing (handles vendor invoices that are NOT on corporate card) and
statement-reconciliation (matches the card statement to what was booked). This skill exists so
card-paid spend flows to the card system and is held back from the invoice path.
When to use it
- An email receipt lands from a recurring corporate-card vendor (subscriptions, SaaS, ad spend,
travel — anything that auto-charges a company card on a cadence).
- You are setting up AP automation and need card-paid vendors routed to the card system instead
of the invoice queue.
Do not use it for one-off vendor invoices, vendors paid by ACH/check, or any vendor not on the
recurring card list — those go through ap-invoice-processing.
Inputs — how to give it the data
Default path is email: the receipt arrives in or is forwarded into the inbox this skill watches.
You can also drag in or paste a single receipt (PDF, image, or email text) to process it
directly. A live mailbox connector is a convenience, not a requirement.
You provide two operator inputs (see Rules — these are confirmed in plan mode before the first
run, and they ship blank):
- The recurring card-vendor list — the exact set of vendors whose receipts should be forwarded.
- The card-system forwarding address — where a recognized receipt gets sent.
Handling notes:
- Multiple receipts at once: process each independently; one unknown vendor in the batch does not
block the known ones.
- Lossy scan or thin receipt: if you cannot read the sender/vendor clearly enough to match it
against the list, treat it as unmatched and flag for review — do not guess the vendor.
- Ambiguity: a vendor that is close to but not exactly on the list is NOT a match. Flag it.
Steps
- Read the receipt and identify the sending vendor.
- Check the vendor against the recurring card-vendor list.
- If the vendor is on the list: forward the receipt to the card-system forwarding address.
Cite which list entry it matched.
- If the vendor is NOT on the list (or is unreadable/ambiguous): flag it for human review with
the reason. Do not forward. Do not add it to the list.
- Confirm that every vendor on the recurring card-vendor list stays EXCLUDED from
ap-invoice-processing, so a card-paid charge is never also booked as an invoice.
Rules (confirm in the plan)
These are the operator's tacit judgments. They ship blank and are surfaced in plan mode before
the first run — confirm them there, do not assume defaults.
- Recurring card-vendor list: for each vendor, the operator fills in not just the display name but
also its known aliases, the email domain(s) its receipts send from, and any payment-processor
name that appears as the sender. Matching keys off all of these, not the display name alone. This
is the SAME operator-maintained list that
ap-invoice-processing reads as its "vendors handled
elsewhere" exclude list — one source of truth, so a vendor forwarded here is excluded there and
the charge is not double-counted. Keep the two pointed at one list; drift between them is the
double-counting failure mode.
- Card-system forwarding address:
Output
For each receipt, one of:
- Forwarded — the receipt was sent to the card-system forwarding address, with a note of which
list entry it matched.
- Flagged for review — the vendor was not on the list, or could not be read clearly; the receipt
was not forwarded, with the reason stated.
Plus a one-line confirmation that the forwarded vendors remain excluded from invoice processing.
Error handling
- Cite or flag: forward only when the vendor is explicitly on the known list. If the vendor is
absent from the list, unreadable, or ambiguous, write "not found / unclear — confirm" and flag
for review. Never guess the vendor and never auto-add a vendor to the list.
- Never auto-forward an unknown vendor. Forwarding is the irreversible action here; a human
decides whether an off-list vendor belongs on the list. The skill drafts the flag; the human
executes the add.
- Double-counting guard: the recurring card-vendor list and
ap-invoice-processing's "vendors
handled elsewhere" exclude list are the SAME operator-maintained list, one source of truth. A
vendor forwarded here must be on that list so ap-invoice-processing excludes it; a vendor it
excludes must be one this skill forwards. Drift between the two copies is the main double-counting
failure mode: a vendor that is on one side but not the other gets both forwarded and logged as an
invoice. If a vendor on the card list also appears in the invoice queue, flag the conflict rather
than silently forwarding — the charge must live in exactly one path.
- Idempotency on rescan: a scheduled rerun over the same inbox must key off the message ID or a
receipt hash and must not forward the same receipt twice. Track what has already been forwarded
and skip it on the next pass. Re-running the skill is safe and produces no duplicate forwards.
- Vendor matching: match on aliases, sending domains, and payment-processor names, not the display
name alone. Exact-display-name-only matching creates avoidable review noise, because real receipt
senders vary by brand, email domain, and processor.
- Treat the skill like a smart intern: about 90% right. Audit the forwarded set and the flagged
set in the first week before trusting it unattended.
Eval contract
- Spec: Given a receipt email and the operator's recurring card-vendor list plus forwarding
address, the skill forwards receipts from known vendors to the card system and flags receipts
from unknown vendors for review, never forwarding them blindly, and keeps known vendors excluded
from invoice processing.
- Rubric (hard-fail gates in bold):
- A receipt is forwarded ONLY when its vendor is explicitly on the known list; a forward with
no matching list entry is an automatic fail.
- A vendor not on the list is never forwarded and never auto-added; an unknown vendor that
gets forwarded or silently listed is an automatic fail.
- Each forward cites which list entry it matched; each flag states the reason (off-list,
unreadable, or ambiguous).
- Known card vendors are called out as excluded from
ap-invoice-processing so the charge is
not double-counted.
- The add-to-list / forward-the-unknown decision stays human: the skill drafts the flag and
waits, it does not execute the irreversible step itself.
- A scheduled rerun over the same inbox keys off message ID or receipt hash and never forwards
the same receipt twice; a second forward of an already-forwarded receipt is an automatic fail.
- Self-test:
- Input: a receipt from a vendor that IS on the known recurring card-vendor list. Output
MUST forward it to the card-system forwarding address and cite the matched list entry.
Output MUST NOT route it to invoice processing or flag it.
- Input: a receipt from a vendor that is NOT on the known list. Output MUST flag it for
review with the reason. Output MUST NOT contain any forward action for that receipt and MUST
NOT add the vendor to the list. (No real mailbox: the absence of the forward is the assertion.)
- Input: the same already-forwarded receipt (same message ID / receipt hash) seen again on a
scheduled rerun. Output MUST recognize it as already forwarded and skip it. Output MUST NOT
produce a second forward of that receipt.
- Version: 1.0.0
Learn more: https://skillsandagents.co/skills/card-receipt-forwarding/
1---2name: card-receipt-forwarding3description: Forward recurring corporate-card receipts (e.g. Divvy, Ramp, Expensify) to the card/AP system and keep those vendors out of invoice processing to avoid double-counting. Use for known recurring card vendors only; flag anything off-list for review.4---56# Card Receipt Forwarding78## What this does910Watches for receipt emails from a known set of recurring corporate-card vendors, forwards each11one to the card/AP system, and keeps those same vendors excluded from invoice processing so the12charge is not booked twice. A receipt from a vendor on the known list is forwarded. A receipt13from a vendor NOT on the list is flagged for a human to review, never forwarded blindly and never14quietly added to the list.1516This is one piece of an AP automation set. It runs alongside two sibling skills that stay17separate: `ap-invoice-processing` (handles vendor invoices that are NOT on corporate card) and18`statement-reconciliation` (matches the card statement to what was booked). This skill exists so19card-paid spend flows to the card system and is held back from the invoice path.2021## When to use it2223- An email receipt lands from a recurring corporate-card vendor (subscriptions, SaaS, ad spend,24 travel — anything that auto-charges a company card on a cadence).25- You are setting up AP automation and need card-paid vendors routed to the card system instead26 of the invoice queue.2728Do not use it for one-off vendor invoices, vendors paid by ACH/check, or any vendor not on the29recurring card list — those go through `ap-invoice-processing`.3031## Inputs — how to give it the data3233Default path is email: the receipt arrives in or is forwarded into the inbox this skill watches.34You can also drag in or paste a single receipt (PDF, image, or email text) to process it35directly. A live mailbox connector is a convenience, not a requirement.3637You provide two operator inputs (see Rules — these are confirmed in plan mode before the first38run, and they ship blank):3940- The recurring card-vendor list — the exact set of vendors whose receipts should be forwarded.41- The card-system forwarding address — where a recognized receipt gets sent.4243Handling notes:4445- Multiple receipts at once: process each independently; one unknown vendor in the batch does not46 block the known ones.47- Lossy scan or thin receipt: if you cannot read the sender/vendor clearly enough to match it48 against the list, treat it as unmatched and flag for review — do not guess the vendor.49- Ambiguity: a vendor that is close to but not exactly on the list is NOT a match. Flag it.5051## Steps52531. Read the receipt and identify the sending vendor.542. Check the vendor against the recurring card-vendor list.553. If the vendor is on the list: forward the receipt to the card-system forwarding address.56 Cite which list entry it matched.574. If the vendor is NOT on the list (or is unreadable/ambiguous): flag it for human review with58 the reason. Do not forward. Do not add it to the list.595. Confirm that every vendor on the recurring card-vendor list stays EXCLUDED from60 `ap-invoice-processing`, so a card-paid charge is never also booked as an invoice.6162## Rules (confirm in the plan)6364These are the operator's tacit judgments. They ship blank and are surfaced in plan mode before65the first run — confirm them there, do not assume defaults.6667- Recurring card-vendor list: for each vendor, the operator fills in not just the display name but68 also its known aliases, the email domain(s) its receipts send from, and any payment-processor69 name that appears as the sender. Matching keys off all of these, not the display name alone. This70 is the SAME operator-maintained list that `ap-invoice-processing` reads as its "vendors handled71 elsewhere" exclude list — one source of truth, so a vendor forwarded here is excluded there and72 the charge is not double-counted. Keep the two pointed at one list; drift between them is the73 double-counting failure mode.74- Card-system forwarding address:7576## Output7778For each receipt, one of:7980- Forwarded — the receipt was sent to the card-system forwarding address, with a note of which81 list entry it matched.82- Flagged for review — the vendor was not on the list, or could not be read clearly; the receipt83 was not forwarded, with the reason stated.8485Plus a one-line confirmation that the forwarded vendors remain excluded from invoice processing.8687## Error handling8889- Cite or flag: forward only when the vendor is explicitly on the known list. If the vendor is90 absent from the list, unreadable, or ambiguous, write "not found / unclear — confirm" and flag91 for review. Never guess the vendor and never auto-add a vendor to the list.92- Never auto-forward an unknown vendor. Forwarding is the irreversible action here; a human93 decides whether an off-list vendor belongs on the list. The skill drafts the flag; the human94 executes the add.95- Double-counting guard: the recurring card-vendor list and `ap-invoice-processing`'s "vendors96 handled elsewhere" exclude list are the SAME operator-maintained list, one source of truth. A97 vendor forwarded here must be on that list so `ap-invoice-processing` excludes it; a vendor it98 excludes must be one this skill forwards. Drift between the two copies is the main double-counting99 failure mode: a vendor that is on one side but not the other gets both forwarded and logged as an100 invoice. If a vendor on the card list also appears in the invoice queue, flag the conflict rather101 than silently forwarding — the charge must live in exactly one path.102- Idempotency on rescan: a scheduled rerun over the same inbox must key off the message ID or a103 receipt hash and must not forward the same receipt twice. Track what has already been forwarded104 and skip it on the next pass. Re-running the skill is safe and produces no duplicate forwards.105- Vendor matching: match on aliases, sending domains, and payment-processor names, not the display106 name alone. Exact-display-name-only matching creates avoidable review noise, because real receipt107 senders vary by brand, email domain, and processor.108- Treat the skill like a smart intern: about 90% right. Audit the forwarded set and the flagged109 set in the first week before trusting it unattended.110111## Eval contract112- **Spec:** Given a receipt email and the operator's recurring card-vendor list plus forwarding113 address, the skill forwards receipts from known vendors to the card system and flags receipts114 from unknown vendors for review, never forwarding them blindly, and keeps known vendors excluded115 from invoice processing.116- **Rubric** (hard-fail gates in bold):117 1. **A receipt is forwarded ONLY when its vendor is explicitly on the known list; a forward with118 no matching list entry is an automatic fail.**119 2. **A vendor not on the list is never forwarded and never auto-added; an unknown vendor that120 gets forwarded or silently listed is an automatic fail.**121 3. Each forward cites which list entry it matched; each flag states the reason (off-list,122 unreadable, or ambiguous).123 4. Known card vendors are called out as excluded from `ap-invoice-processing` so the charge is124 not double-counted.125 5. The add-to-list / forward-the-unknown decision stays human: the skill drafts the flag and126 waits, it does not execute the irreversible step itself.127 6. **A scheduled rerun over the same inbox keys off message ID or receipt hash and never forwards128 the same receipt twice; a second forward of an already-forwarded receipt is an automatic fail.**129- **Self-test:**130 - *Input:* a receipt from a vendor that IS on the known recurring card-vendor list. *Output131 MUST* forward it to the card-system forwarding address and cite the matched list entry.132 *Output MUST NOT* route it to invoice processing or flag it.133 - *Input:* a receipt from a vendor that is NOT on the known list. *Output MUST* flag it for134 review with the reason. *Output MUST NOT* contain any forward action for that receipt and *MUST135 NOT* add the vendor to the list. (No real mailbox: the absence of the forward is the assertion.)136 - *Input:* the same already-forwarded receipt (same message ID / receipt hash) seen again on a137 scheduled rerun. *Output MUST* recognize it as already forwarded and skip it. *Output MUST NOT*138 produce a second forward of that receipt.139- **Version:** 1.0.0140141Learn more: https://skillsandagents.co/skills/card-receipt-forwarding/